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