xref: /haiku/data/develop/Makefile (revision 850f2d1e58cc443f77353c7fc0ce0c158c1fd328)
1## Haiku Generic Makefile v2.6 ##
2
3## Fill in this file to specify the project being created, and the referenced
4## Makefile-Engine will do all of the hard work for you. This handles any
5## architecture of Haiku.
6
7# The name of the binary.
8NAME =
9
10# The type of binary, must be one of:
11#	APP:	Application
12#	SHARED:	Shared library or add-on
13#	STATIC:	Static library archive
14#	DRIVER: Kernel driver
15TYPE =
16
17# 	If you plan to use localization, specify the application's MIME signature.
18APP_MIME_SIG =
19
20#	The following lines tell Pe and Eddie where the SRCS, RDEFS, and RSRCS are
21#	so that Pe and Eddie can fill them in for you.
22#%{
23# @src->@
24
25#	Specify the source files to use. Full paths or paths relative to the
26#	Makefile can be included. All files, regardless of directory, will have
27#	their object files created in the common object directory. Note that this
28#	means this Makefile will not work correctly if two source files with the
29#	same name (source.c or source.cpp) are included from different directories.
30#	Also note that spaces in folder names do not work well with this Makefile.
31SRCS =
32
33#	Specify the resource definition files to use. Full or relative paths can be
34#	used.
35RDEFS =
36
37#	Specify the resource files to use. Full or relative paths can be used.
38#	Both RDEFS and RSRCS can be utilized in the same Makefile.
39RSRCS =
40
41# End Pe/Eddie support.
42# @<-src@
43#%}
44
45#	Specify libraries to link against.
46#	There are two acceptable forms of library specifications:
47#	-	if your library follows the naming pattern of libXXX.so or libXXX.a,
48#		you can simply specify XXX for the library. (e.g. the entry for
49#		"libtracker.so" would be "tracker")
50#
51#	-	for GCC-independent linking of standard C++ libraries, you can use
52#		$(STDCPPLIBS) instead of the raw "stdc++[.r4] [supc++]" library names.
53#
54#	- 	if your library does not follow the standard library naming scheme,
55#		you need to specify the path to the library and it's name.
56#		(e.g. for mylib.a, specify "mylib.a" or "path/mylib.a")
57LIBS =
58
59#	Specify additional paths to directories following the standard libXXX.so
60#	or libXXX.a naming scheme. You can specify full paths or paths relative
61#	to the Makefile. The paths included are not parsed recursively, so
62#	include all of the paths where libraries must be found. Directories where
63#	source files were specified are	automatically included.
64LIBPATHS =
65
66#	Additional paths to look for system headers. These use the form
67#	"#include <header>". Directories that contain the files in SRCS are
68#	NOT auto-included here.
69SYSTEM_INCLUDE_PATHS =
70
71#	Additional paths paths to look for local headers. These use the form
72#	#include "header". Directories that contain the files in SRCS are
73#	automatically included.
74LOCAL_INCLUDE_PATHS =
75
76#	Specify the level of optimization that you want. Specify either NONE (O0),
77#	SOME (O1), FULL (O2), or leave blank (for the default optimization level).
78OPTIMIZE :=
79
80# 	Specify the codes for languages you are going to support in this
81# 	application. The default "en" one must be provided too. "make catkeys"
82# 	will recreate only the "locales/en.catkeys" file. Use it as a template
83# 	for creating catkeys for other languages. All localization files must be
84# 	placed in the "locales" subdirectory.
85LOCALES =
86
87#	Specify all the preprocessor symbols to be defined. The symbols will not
88#	have their values set automatically; you must supply the value (if any) to
89#	use. For example, setting DEFINES to "DEBUG=1" will cause the compiler
90#	option "-DDEBUG=1" to be used. Setting DEFINES to "DEBUG" would pass
91#	"-DDEBUG" on the compiler's command line.
92DEFINES =
93
94#	Specify the warning level. Either NONE (suppress all warnings),
95#	ALL (enable all warnings), or leave blank (enable default warnings).
96WARNINGS =
97
98#	With image symbols, stack crawls in the debugger are meaningful.
99#	If set to "TRUE", symbols will be created.
100SYMBOLS :=
101
102#	Includes debug information, which allows the binary to be debugged easily.
103#	If set to "TRUE", debug info will be created.
104DEBUGGER :=
105
106#	Specify any additional compiler flags to be used.
107COMPILER_FLAGS =
108
109#	Specify any additional linker flags to be used.
110LINKER_FLAGS =
111
112#	Specify the version of this binary. Example:
113#		-app 3 4 0 d 0 -short 340 -long "340 "`echo -n -e '\302\251'`"1999 GNU GPL"
114#	This may also be specified in a resource.
115APP_VERSION :=
116
117#	(Only used when "TYPE" is "DRIVER"). Specify the desired driver install
118#	location in the /dev hierarchy. Example:
119#		DRIVER_PATH = video/usb
120#	will instruct the "driverinstall" rule to place a symlink to your driver's
121#	binary in ~/add-ons/kernel/drivers/dev/video/usb, so that your driver will
122#	appear at /dev/video/usb when loaded. The default is "misc".
123DRIVER_PATH =
124
125## Include the Makefile-Engine
126DEVEL_DIRECTORY := \
127	$(shell findpaths -r "makefile_engine" B_FIND_PATH_DEVELOP_DIRECTORY)
128include $(DEVEL_DIRECTORY)/etc/makefile-engine
129