1 ###############################################################################
3 # CLAM System default variable definitions for C++ compilation.
5 ###############################################################################
7 ifneq "$(BUILD_PARAMETER_FILE)" ""
8 # define our version of the build parameter file. this should be set
9 # beforehand so we override the default parameter file for clam.
10 export PARAMETER_FILE = $(BUILD_PARAMETER_FILE)
12 ifeq "$(PARAMETER_FILE)" ""
13 # last ditch attempt to get one that will work.
14 export PARAMETER_FILE = $(PRODUCTION_STORE)/feisty_meow_config.ini
17 ###############################################################################
19 # Pull in the base support for CLAM.
22 ###############################################################################
24 #export CLAM_BINARIES = $(CLAM_SCRIPTS)/../bin
26 ###############################################################################
28 # BASE_CPU is a flag that distinguishes the type of processor, if necessary.
30 #BASE_CPU := m68k = motorola 68000 series | m68340 = motorola 68340
31 # | x86 = intel x86 | ppc = power pc | arm = ARM core
33 # set the CPU to a default if it has not been set previously.
35 BASE_CPU := $(shell machine 2>/dev/null || arch 2>/dev/null || uname -m 2>/dev/null || echo i686)
38 # COMPILER is a flag that specifies the compiler that will be used to build
39 # code. It is mainly used within CLAM itself for determining the proper
42 #COMPILER := GNU_LINUX | GNU_ARM_LINUX | GNU_DARWIN | GNU_WINDOWS
44 # choose a default compiler if none was specified.
46 ifeq "$(OP_SYSTEM)" "UNIX"
47 ifeq "$(OS_SUBCLASS)" "darwin"
48 COMPILER := GNU_DARWIN
53 ifeq "$(OP_SYSTEM)" "WIN32"
54 COMPILER := GNU_WINDOWS
57 # if we get into this case, we have no idea how to set the default
58 # compiler. you may need to change the above logic for guessing it
59 # anyhow. but we will go with our favorite default.
64 # COMPILER_VERSION specifies the version of a particular compiler, if this is
65 # needed to distinguish how the code is built.
66 export COMPILER_VERSION
68 ###############################################################################
70 # "TYPE" is the kind of product being generated by this project. this is
71 # used to decide where to put the final products of compilation. this is a
72 # variable in the user makefile.
74 # TYPE = library (outputs are static or dynamic libraries)
75 # TYPE = application (outputs are main-line executables)
76 # TYPE = test (outputs are test programs)
77 # TYPE = hierarchy (there are no outputs; just invokes other makes)
80 ###############################################################################
82 # "DEFINITIONS" is a list of compiler flags that define the value of c macros.
83 # These usually have the format of -D<flag>, but in this variable, only the
84 # <flag> itself should be listed because the compiler option -D is added
86 DEFINITIONS += CLAM_BUILT
87 # simple definition that tells the code that clam is building it.
89 ifneq "$(BOOT_STRAPPING)" ""
90 # the software is being built from the ground up, including the binaries
91 # we use for building (like value_tagger and others).
92 DEFINITIONS += BOOT_STRAPPING
95 # "UNDEFINITIONS" is a list of macros to undefine.
98 # GLOBAL_PRODUCT_NAME is an important variable for tagging the entire code base
99 # with some branding. It is provided as a macro definition to all source
100 # files. The initial value for the macro should come from the build init
101 # file, but if it does not, we pick a default.
102 ifeq "$(product_name)" ""
103 GLOBAL_PRODUCT_NAME := \\\"HOOPLE\\\"
105 GLOBAL_PRODUCT_NAME := \\\"$(product_name)\\\"
108 # *_PRODUCT_VERSION records parts of our version numbers for the code to see.
109 DEFINITIONS += MAJOR_PRODUCT_VERSION=$(major) MINOR_PRODUCT_VERSION=$(minor)
111 # TEST_MAKEFILE tells the preconditions to check that the files specified
112 # in the makefile are actually present.
113 export TEST_MAKEFILE =
115 ###############################################################################
117 # pseudo-boolean variable section. if these have any value at all, then they
118 # are treated as being true. note that these are flags that should generally
119 # be passed on the command line to a make. if they are intended to be used
120 # from inside a makefile, then they must appear before this file is included.
122 # "REBUILD" causes a rebuild of all source files if it is true.
125 # "DEBUG" is used to specify a debugging build. the default is for this to
126 # be false, which causes a release build.
129 # Add in a macro definition if debugging is turned on. This allows us to
130 # easily eliminate code from release builds.
132 DEFINITIONS += __DEBUGGING__
135 # "CONSOLE_MODE" causes the program to be generated as a console application.
136 # this is relevant in systems where programs are otherwise built with graphical
137 # user interfaces. these are always built statically.
140 # "OPTIMIZE" creates optimized code.
143 # "NO_COMPILE" just runs through the targets without compiling.
146 # "BUILD_LIST_FILE" is the set of files that need to be recompiled for
148 export BUILD_LIST_FILE = $(CLAM_TMP)/clam_rebuild.$(PROJECT)
150 # "BUILD_WHACK_FILE" is the set of object files that should be removed if
151 # a build failure occurs.
152 export BUILD_WHACK_FILE = $(CLAM_TMP)/clam_whack.$(PROJECT)
154 # we are adding the build list to the flag files so we know it gets cleaned up.
155 FLAG_FILES += $(BUILD_LIST_FILE) $(BUILD_WHACK_FILE)
157 ###############################################################################
159 # This section implements the HOOPLE directory scheme. If your scheme differs,
160 # then you will want to modify these appropriately.
162 # "THIRD_PARTY_DIR" is the root of our support libraries.
163 export THIRD_PARTY_DIR
164 ifeq "$(THIRD_PARTY_DIR)" ""
165 export THIRD_PARTY_DIR := "$(PRODUCTION_STORE)/3rdparty"
168 # "OUTPUT_ROOT" is the root of all output directories for objects and other
169 # products being built.
170 export OUTPUT_ROOT = $(CLAM_TMP)/objects
172 # "PLATFORM_ADD_IN" is an option discriminator for the intended execution
173 # platform. it should end in an underscore if it is provided.
174 #PLATFORM_ADD_IN = linux_ | w32_
176 # "CPU_BUILD_DIR" distinguishes object directories by including the CPU
177 # name and the type of build.
179 CPU_BUILD_DIR = $(BASE_CPU)_$(PLATFORM_ADD_IN)dbg
181 CPU_BUILD_DIR = $(BASE_CPU)_$(PLATFORM_ADD_IN)rel
184 # "BASE_OUTPUT_PATH" is the parent directory of objects for this type of
185 # CPU and this type of build.
186 export BASE_OUTPUT_PATH = $(OUTPUT_ROOT)/$(CPU_BUILD_DIR)
188 # special case when doing arm-linux builds
189 ifeq "$(COMPILER)" "GNU_ARM_LINUX"
190 export TARGETS_STORE = $(FEISTY_MEOW_APEX)/$(CPU_BUILD_DIR)
191 # special output directory for firmware does not include CPU name because
192 # the repository already include the CPU name
193 BASE_OUTPUT_PATH = $(OUTPUT_ROOT)
196 # "OUTPUT_PATH" is the directory to generate all compiled products into.
197 export OUTPUT_PATH = $(BASE_OUTPUT_PATH)/$(PROJECT)
199 # "OBJECT_DIR" is where object files will be stored during compilation for the
200 # target type being produced.
201 export OBJECT_DIR = $(OUTPUT_PATH)
203 # These specify where files are to be created or located for our local build.
204 export EXECUTABLE_DIR = $(TARGETS_STORE)
205 export DYNAMIC_LIBRARY_DIR = $(TARGETS_STORE)
206 export STATIC_LIBRARY_DIR = $(TARGETS_STORE)
208 # "HEADER_SEARCH_PATH" is where the class interface files are to be found.
209 # we add the generated store folder for the build version file.
210 HEADER_SEARCH_PATH = $(FEISTY_MEOW_GENERATED_STORE)/versions
212 # "HOOPLE_HEADERS" are locations where the HOOPLE headers can be found.
213 ifeq "$(HOOPLE_HEADERS)" ""
214 #seems like some of this is redundant with earlier 3rdparty exploring.
215 LOCUS_LIBRARY_HEADERS = $(shell bash -c '\
216 if [ -d "$(FEISTY_MEOW_APEX)/nucleus" ]; then \
217 echo "$(FEISTY_MEOW_APEX)/nucleus" "$(FEISTY_MEOW_APEX)/octopi" "$(FEISTY_MEOW_APEX)/graphiq" ; \
220 fi | tr "\\\\" / | sed -e "s/\([a-zA-Z]\):\/\([^ ]*\)/\/cygdrive\/\1\/\2/g" ')
221 # above assumes cygwin support for windows! was assuming msys support.
222 HOOPLE_HEADERS := $(shell $(FIND) $(LOCUS_LIBRARY_HEADERS) -mindepth 1 -maxdepth 1 -type d )
225 # "LOCAL_HEADERS" are overrides that go first in the header search path.
226 LOCAL_HEADERS = $(THIRD_PARTY_DIR)
228 # "CODEBASE_HEADERS" is a list that can be changed for a particular codebase.
229 # it is guaranteed that clam will not interfere with this list, whereas
230 # the LOCAL_HEADERS can be modified by clam.
233 # "LOCAL_LIBRARIES" are overrides that go first in the library search path.
236 # "LIBRARY_SEARCH_PATH" is where the library files are to be found.
237 #LIBRARY_SEARCH_PATH =
239 # "HOOPLE_LIBRARIES" is where our local libraries are located.
242 # "EXTRA_COPIES" is a list of files that need to be among the files copied
243 # to a project output folder.
246 # "EXTRA_VERSIONS" is a list of version files to synchronize with the main
247 # library version for this build. if a file called "version.ini" exists in
248 # the project directory, then it will automatically be upgraded, so the
249 # extra version files are mainly useful when you have a project with multiple
250 # programs in it and you want them to have independent version files (as you
251 # should perhaps want).
252 export EXTRA_VERSIONS
254 # "DEPS_FILE" is where the auto-dependency information is stored.
255 export DEPS_FILE = $(OUTPUT_PATH)/$(PROJECT).deps
257 # "NO_DEPS" is an exclusion flag. if it is defined, then no auto-dependency
258 # files will be generated. this is useful if you are missing makedep or trying
262 # "OMIT_VERSIONS" is another exclusion flag. this one turns off the creation
263 # of version resource files and eliminates any references that would include
264 # such files. this is needed when rebuilding version_stamper.
267 # add the cleanup values we already know.
268 CLEANUPS += $(OUTPUT_PATH) $(DEPS_FILE)
270 SUPPLEMENTAL_CLEANUP_TARGETS = cpp_add_to_cleanups_variable
272 # "GENDEPS" is a flag that causes dependencies to be generated into
273 # statically built applications.
276 ###############################################################################
278 # "SEARCH_DIRS" is a list of directories that should be searched for both C++
279 # header files and for C++ code libraries. The items placed in SEARCH_DIRS
280 # are fed into both the LIBRARY_SEARCH_PATH and the HEADER_SEARCH_PATH.
283 # "DEPENDENCY_DEFINITIONS" is a list of extra definitions that only get passed
284 # to the makedep tool. this can vary for each compiler.
285 #DEPENDENCY_DEFINITIONS =
287 # "DEPENDENCY_ADDITIONS" is a set of parameters passed directly to makedep.
288 #DEPENDENCY_ADDITIONS =
290 # "DEBUG_FLAGS" these flags are used for generating specialized versions of
291 # object files, such as ones that include debugging code or that add code for
293 # Possible values are -g for adding GDB debugging code and -pg for adding
294 # gprof profiling code.
299 # "COMPILER_FLAGS" are the flags for the pre-processor and compiler.
302 # "STRICT_WARNINGS" turns on all warnings and forces them to be considered
303 # as errors when encountered.
306 # "LIBRARIAN_FLAGS" are flags that need to be passed to the library tool
307 # that creates static code libraries.
310 # "SOURCE" is the list of files that are turned into objects.
313 # "OBJECTS" are the files to be created by compilation and added to any
314 # libraries or executables that are made.
317 # "EXTRA_OBJECTS" are files that are created elsewhere but need to be bound
321 # "LIBS_USED" are system or compiler code libraries that the targets to be
322 # created depend upon.
325 # "LOCAL_LIBS_USED" is very similar to the LIBS_USED, but these libraries
326 # actually cause executables and object files to be recompiled when the
327 # libraries specified have changed. To accomplish this, these libraries MUST
328 # be located in the STATIC_LIBRARY_DIR rather than at some arbitrary place
329 # on the LIBRARY_SEARCH_PATH.
332 # Load flags tell the linker and loader how to deal with the files and where
333 # to locate library components. The prefix goes before object files are
334 # listed, and the suffix after. The prefix should have things like the
335 # directories to be searched for code libraries (although they should be added
336 # to LIBRARY_SEARCH_PATH) and the loading mode for functions (static/dynamic).
337 # In the suffix, actual library loading statements (like -lmath) can be
338 # included (although they should be listed in a different form in LIBS_USED).
339 # Remember that the unix loader looks for functions in libraries in a bizarre
340 # way: ld searches for a function only when it has already been asked for it.
341 # This means that it does not remember what functions it has already been
342 # provided with in the libraries and object files, and it will fail if those
343 # functions are only asked for after they have already been encountered.
347 # The prefix used on library names, mostly for unix.
349 # The standard suffix for static or import libraries on this operating system.
352 # The dynamic library ending differs between platforms.
355 # Flag for specifying the library name to create.
356 #CREATE_LIBRARY_FLAG =
358 # Flag for specifying a library to include in linking.
359 LIBRARY_NAME_FLAG = -l
361 # Flag for specifying the name of an object file to include in a library or exe.
362 OBJECT_NAME_FLAG = -o
364 # Flag for specifying a directory to add to the search path for libs.
365 LIBRARY_PATH_FLAG = -L
367 # Flag for specifying the name of an output from the linker.
368 #LINKER_OUTPUT_FLAG =
370 # Flag for separating linker options from compilation options for a combined
372 #LINKER_OPTION_SEPARATOR =
374 # Flag that passes special options when building executable programs. It is
375 # passed just before the LOAD_FLAG_PREFIX.
378 # The name of the compiler tool.
381 # The name of the library creator tool.
384 # the root name of the version file. This is currently irrelevant on
385 # non-windoze platforms.
386 VERSION_RC_ROOT = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/rc_name.sh)
388 ifneq "$(CONSOLE_MODE)" ""
389 # this definition can be used to signal different behavior when the app is
390 # being built for console mode. that generally implies that it should send
391 # debugging info to standard out and avoid doing much with graphics.
392 DEFINITIONS += CONSOLE_MODE
395 ###############################################################################
397 # Operating system dependent flags.
398 # (not so OS dependent with move to only gnu compilation...)
403 ###############################################################################
405 # Compiler Dependent Flags
407 # "COMPILER_ROOT_DIR" is the top-level for the C++ compiler location.
408 export COMPILER_ROOT_DIR
409 # "COMPILER_HEADER_DIR" is where the compiler headers are.
410 export COMPILER_HEADER_DIR
411 # "COMPILER_LIBRARY_DIR" is where archived libraries are.
412 # "CC" is the name of the C++ compiler to be used.
414 # These flags may be useful across multiple compilers.
416 # SSL brings in the OpenSSL libraries.
419 # CURL provides access to the curl library.
422 # Enables wxwidget library support.
425 ifneq "$(OMIT_VERSIONS)" ""
426 DEFINITIONS += NO_VERSION
429 ############################################################################
430 # compiler specific section below.
431 ############################################################################
433 ifeq "$(COMPILER)" "GNU_LINUX"
434 # Unix GNU compiler...
436 COMPILER_ROOT_DIR = /
437 PLATFORM_ADD_IN = linux_
438 ARCHITECTURE = $(shell machine 2>/dev/null || arch 2>/dev/null || echo i686)
440 export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
442 DEFINITIONS += _FILE_OFFSET_BITS=64
444 DEPENDENCY_DEFINITIONS += NO_VERSION
445 DEPENDENCY_ADDITIONS = -X/usr/include -X/usr/include/c++/$(COMPILER_VERSION) -X/usr/include/c++/$(COMPILER_VERSION)/tr1 -X/usr/local/include -X/usr/include/linux -X/usr/include/wx-2.8 -X/usr/lib/gcc/i586-suse-linux/$(COMPILER_VERSION)/include -X/usr/lib/gcc/i486-linux-gnu/$(COMPILER_VERSION)/include -X/usr/lib/gcc/i686-linux-gnu/$(COMPILER_VERSION)/include -X/usr/lib/gcc/x86_64-linux-gnu/$(COMPILER_VERION)/include -X/usr/include/x86_64-linux-gnu -X/usr/include/i386-linux-gnu
447 # "USE_XWIN" specifies that this project needs X window system support.
450 ifeq "x86_64" "$(ARCHITECTURE)"
451 COMPILER_LIBRARY_DIR = /lib64 /usr/lib64 /usr/local/lib64
453 COMPILER_LIBRARY_DIR = /lib /usr/lib /usr/local/lib
455 DEFINITIONS += __LINUX__ linux __linux__ UNIX unix __UNIX__ __USE_GNU
456 # X Window System not enabled by default.
457 #DEFINITIONS += __XWINDOWS__
461 LOAD_FLAG_PREFIX += -Xlinker -O3
462 # -Xlinker --print-map : shows what went in and why.
463 # -Xlinker -O3 : linker optimization
465 CREATE_LIBRARY_FLAG += -r
466 # space on end is significant.
467 LINKER_OUTPUT_FLAG = -o
469 # compiler flags for gcc:
470 # -finline-functions: inline functions as needed.
471 # -fPIC: generate position independent code.
472 # -fpic: generate position independent code, but less portable.
473 # -frepo: automatic template instantiation at link time, no implicit ones.
474 # -ffunction-sections: put each function in own section, improving linking.
475 # -fdata-sections: put data in own section, improving linking.
476 # -shared-libgcc: use the shared library version of compiler libraries.
477 # -fno-exceptions: do not support exception handling and stack unwinding.
479 COMPILER_FLAGS += -shared-libgcc -fPIC
482 # COMPILER_FLAGS += -finline-functions
484 ifneq "$(STRICT_WARNINGS)" ""
485 COMPILER_FLAGS += -Wall -Werror -Wextra -Wno-long-long
488 ifeq "$(CONSOLE_MODE)" ""
490 # dl=dynamic library.
493 LIBS_USED += pthread rt
494 # pthread=thread libraries.
495 # rt=real time libraries for shared memory.
498 # add in debugging flags.
499 COMPILER_FLAGS += -g3 -O0
501 ##LOAD_FLAG_PREFIX += -lefence
504 ###COMPILER_FLAGS += -pg
505 ###LOAD_FLAG_PREFIX += -pg
506 ####trying out profiling: does not work so well yet. generates gmon.out files
507 #### in pretty random places. the parameters to the linker do not even
508 #### mention this flag, and the compiler flags do not seem to provide an
509 #### option for where the file goes. so, it is on hold.
515 ############################################################################
517 ifeq "$(COMPILER)" "GNU_ARM_LINUX"
518 # ARM-linux GNU compiler...
519 COMPILER_ROOT_DIR = /usr/local/arm-linux
520 CC = $(COMPILER_ROOT_DIR)/bin/g++
521 PLATFORM_ADD_IN = linux_
523 export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
525 SNAPGEAR_ROOT_DIR = $(HOME)/snapgear
527 DEPENDENCY_DEFINITIONS += NO_VERSION
529 COMPILER_HEADER_DIR = $(SNAPGEAR_ROOT_DIR)/linux-2.4.x/include
530 # COMPILER_HEADER_DIR += $(SNAPGEAR_ROOT_DIR)/include
531 COMPILER_HEADER_DIR += $(COMPILER_ROOT_DIR)/include $(COMPILER_ROOT_DIR)/lib
532 COMPILER_HEADER_DIR += /usr/local/lib/gcc-lib/arm-linux/3.3.2/include
534 COMPILER_LIBRARY_DIR = $(SNAPGEAR_ROOT_DIR)/lib $(COMPILER_ROOT_DIR)/lib/be
536 DEFINITIONS += linux __linux__ unix UNIX __UNIX__ __LINUX__
538 COMPILER_FLAGS += -mbig-endian -finline-functions -ffunction-sections -fPIC -nostdinc -nostdinc++
539 ifneq "$(STRICT_WARNINGS)" ""
540 COMPILER_FLAGS += -Wall -Werror
543 LIBRARY_TOOL = $(COMPILER_ROOT_DIR)/bin/ar
545 CREATE_LIBRARY_FLAG += -r
546 # space on end is significant.
548 LINK_TOOL = $(COMPILER_ROOT_DIR)/bin/g++
549 LINKER_OUTPUT_FLAG = -o
550 EXE_FLAGS = -mbig-endian
551 LOAD_FLAG_PREFIX += -v -mbig-endian
553 LIBS_USED += pthread dl
556 COMPILER_FLAGS += -g3 -O0
561 ############################################################################
563 ifeq "$(COMPILER)" "GNU_WINDOWS"
564 # GNU compiler for MS Windoze...
566 COMPILER_ROOT_DIR = /
567 ARCHITECTURE = $(shell machine 2>/dev/null || arch 2>/dev/null || echo i686)
568 #hmmm: below fixes nothing! argh!
569 # ARCHITECTURE = i386
571 export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
573 # RC := $(COMPILER_ROOT_DIR)/bin/windres
574 PLATFORM_ADD_IN = w32_
576 COMPILER_HEADER_DIR = $(COMPILER_ROOT_DIR)/include $(COMPILER_ROOT_DIR)/include/c++/3.4.2
577 #$(COMPILER_ROOT_DIR)/lib/gcc/mingw32/3.4.2/include
578 ###$(COMPILER_ROOT_DIR)/usr/include/mingw $(COMPILER_ROOT_DIR)/usr/include $(COMPILER_ROOT_DIR)/usr/include/w32api $(COMPILER_ROOT_DIR)/usr/include/extras
580 COMPILER_LIBRARY_DIR = $(COMPILER_ROOT_DIR)/lib
581 DEFINITIONS += __GNU_WINDOWS__ _Windows _WINDOWS WIN32 __WIN32__ __FLAT__ VC_EXTRALEAN WIN32_LEAN_AND_MEAN ATL_NO_LEAN_AND_MEAN _WIN32 __USE_W32_SOCKETS
586 LIBRARY_PATH_FLAG = -L
589 # LOAD_FLAG_PREFIX += -lpthread
590 LOAD_FLAG_PREFIX += -mwindows
591 CREATE_LIBRARY_FLAG += -r
592 # space on end is significant.
593 LINKER_OUTPUT_FLAG = -o
595 MIDL = midl -Oicf $(MIDL_DEFS) $(HEADER_SEARCH_PATH:%=-I% ) $(DEFINITIONS:%=-D% )
596 MIDL_DEFS = -no_robust
597 # some lovely definitions used by some of the mfc and other ms code.
598 DEPENDENCY_DEFINITIONS += __cplusplus __MINGW32__ _WIN32 _CHAR_UNSIGNED M_I86 _M_I86 _M_IX86=500 _WIN32_WINNT=0x501 __RPC_WIN32__ __RPCNDR_H_VERSION__ __RPCPROXY_H_VERSION__ TARGET_IS_NT40_OR_LATER PGM_SETCHILD _MFC_VER=0x0600
602 ############################################################################
604 ifeq "$(COMPILER)" "GNU_DARWIN"
605 # Darwin kernel GNU compiler... really more general macos (MacOS) here these days.
607 COMPILER_ROOT_DIR = /
608 PLATFORM_ADD_IN = darwin
609 ARCHITECTURE = $(shell machine 2>/dev/null || arch 2>/dev/null || echo i686)
611 export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
613 DEFINITIONS += _FILE_OFFSET_BITS=64
615 DEPENDENCY_DEFINITIONS += NO_VERSION
616 # DEPENDENCY_ADDITIONS = -X/usr/include -X/usr/include/c++/$(COMPILER_VERSION) -X/usr/include/c++/$(COMPILER_VERSION)/tr1 -X/usr/local/include -X/usr/include/linux -X/usr/include/wx-2.8 -X/usr/lib/gcc/i586-suse-linux/$(COMPILER_VERSION)/include -X/usr/lib/gcc/i486-linux-gnu/$(COMPILER_VERSION)/include
617 DEPENDENCY_ADDITIONS = -X/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
619 COMPILER_HEADER_DIR := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
620 #/usr/local/include /usr/include
621 #old /System/Library/Frameworks/Foundation.framework/Versions/C/Headers
622 #/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
623 #/Library/Developer/CommandLineTools/usr/include
625 # "USE_XWIN" specifies that this project needs X window system support.
628 # ifeq "x86_64" "$(ARCHITECTURE)"
629 # COMPILER_LIBRARY_DIR = /lib64 /usr/lib64 /usr/local/lib64
631 COMPILER_LIBRARY_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib
632 #/usr/lib /usr/local/lib
635 # DEFINITIONS += __LINUX__ linux __linux__ UNIX unix __UNIX__ __USE_GNU
636 DEFINITIONS += UNIX unix __UNIX__ __USE_GNU
637 # X Window System not enabled by default.
638 #DEFINITIONS += __XWINDOWS__
642 # LOAD_FLAG_PREFIX += -Xlinker
645 # special flags for getting rid of warnings on fd_set.
646 LOAD_FLAG_PREFIX=-Wl,-U,___darwin_check_fd_set_overflow
648 # -Xlinker --print-map : shows what went in and why.
649 # -Xlinker -O3 : linker optimization
650 CREATE_LIBRARY_FLAG += -r
651 # space on end is significant.
652 LINKER_OUTPUT_FLAG = -o
654 # COMPILER_FLAGS += -shared-libgcc -fPIC
655 #old: -Wl,-export-dynamic
657 # COMPILER_FLAGS += -finline-functions
659 # ifneq "$(STRICT_WARNINGS)" ""
660 # COMPILER_FLAGS += -Wall -Werror -Wextra -pedantic-errors -Wno-long-long
662 # LIBS_USED += dl pthread rt
663 #mac no like these libs
664 # dl=dynamic library.
665 # pthread=thread libraries.
666 # rt=real time libraries for shared memory.
669 COMPILER_FLAGS += -Wno-nullability-completeness
670 #trying this one again, which had been turned off.
671 COMPILER_FLAGS += -fgnu-runtime
674 # add in debugging flags.
675 # COMPILER_FLAGS += -g3 -O0
679 ############################################################################
681 # these activities are done after the compiler specific stuff.
683 # add a definition for programs to be able to differentiate the versions.
684 DEFINITIONS += COMPILER_VERSION=$(COMPILER_VERSION)
686 # set a variable that scripts can use to get most of the definitions.
687 export VARIABLE_DEFINITION_SET := $(DEFINITIONS)
689 ###############################################################################