endif
ifeq "$(PARAMETER_FILE)" ""
# last ditch attempt to get one that will work.
- export PARAMETER_FILE = $(REPOSITORY_DIR)/build.ini
+ export PARAMETER_FILE = $(PRODUCTION_STORE)/feisty_meow_config.ini
endif
###############################################################################
###############################################################################
-#no # set the repository directory if it's still set to the base version.
-#ifeq "$(REPOSITORY_DIR)" ""
-# ifeq "$(OP_SYSTEM)" "UNIX"
-# export REPOSITORY_DIR = $(HOME)/hoople
-# endif
-# ifeq "$(OP_SYSTEM)" "WIN32"
-# export REPOSITORY_DIR = l:
-# endif
-#endif
-
-#export CLAM_BIN = $(CLAM_DIR)/../bin
-
-###############################################################################
-
-# BASE_CPU is a flag that distinguishes the type of processor, if necessary.
-export BASE_CPU
-#BASE_CPU := m68k = motorola 68000 series | m68340 = motorola 68340
-# | x86 = intel x86 | ppc = power pc | arm = ARM core
-
-# set the CPU to a default if it has not been set previously.
-ifeq "$(BASE_CPU)" ""
-# ifneq "$(OP_SYSTEM)" "WIN32"
- BASE_CPU := $(shell machine 2>/dev/null || arch 2>/dev/null || uname -m 2>/dev/null || echo i686)
-# endif
-
-# ifeq "$(BASE_CPU)" ""
-# BASE_CPU := $(shell uname -m)
-# BASE_CPU := $(shell arch)
-# ifeq "$(BASE_CPU)" ""
-# # failed to get the cpu type.
-# BASE_CPU := x86
-# endif
-# endif
-endif
-
-# COMPILER is a flag that specifies the compiler that will be used to build
-# code. It is mainly used within CLAM itself for determining the proper
-# compiler flags.
-export COMPILER
-#COMPILER := GNU_LINUX | GNU_ARM_LINUX | GNU_DARWIN | GNU_WIN32 | VISUAL_CPP
-
-# choose a default compiler if none was specified.
-ifeq "$(COMPILER)" ""
- ifeq "$(OP_SYSTEM)" "UNIX"
- ifeq "$(OS_SUBCLASS)" "darwin"
- COMPILER := GNU_DARWIN
- else
- COMPILER := GNU_LINUX
- endif
- endif
- ifeq "$(OP_SYSTEM)" "WIN32"
-# COMPILER := GNU_WIN32
- COMPILER := VISUAL_CPP
- endif
- ifeq "$(COMPILER)" ""
- # if we get into this case, we have no idea how to set the default
- # compiler. you may need to change the above logic for guessing it
- # anyhow. but we will go with our favorite default.
- COMPILER := GNU_LINUX
- endif
-endif
-
-# COMPILER_VERSION specifies the version of a particular compiler, if this is
-# needed to distinguish how the code is built.
-export COMPILER_VERSION
-
-###############################################################################
-
# "TYPE" is the kind of product being generated by this project. this is
# used to decide where to put the final products of compilation. this is a
-# variable in the user's makefile.
+# variable in the user makefile.
# Valid Types:
# TYPE = library (outputs are static or dynamic libraries)
# TYPE = application (outputs are main-line executables)
# be passed on the command line to a make. if they are intended to be used
# from inside a makefile, then they must appear before this file is included.
-# "REBUILD" causes a rebuild of all source files if it's true.
+# "REBUILD" causes a rebuild of all source files if it is true.
export REBUILD
# "DEBUG" is used to specify a debugging build. the default is for this to
###############################################################################
# This section implements the HOOPLE directory scheme. If your scheme differs,
-# then you'll want to modify these appropriately.
+# then you will want to modify these appropriately.
# "THIRD_PARTY_DIR" is the root of our support libraries.
export THIRD_PARTY_DIR
ifeq "$(THIRD_PARTY_DIR)" ""
- export THIRD_PARTY_DIR := "$(PRODUCTION_DIR)/3rdparty"
+ export THIRD_PARTY_DIR := "$(PRODUCTION_STORE)/3rdparty"
endif
# "OUTPUT_ROOT" is the root of all output directories for objects and other
# "CPU_BUILD_DIR" distinguishes object directories by including the CPU
# name and the type of build.
ifneq "$(DEBUG)" ""
- CPU_BUILD_DIR = $(BASE_CPU)_$(PLATFORM_ADD_IN)dbg
+ CPU_BUILD_DIR = $(CLAM_BASE_CPU)_$(PLATFORM_ADD_IN)dbg
else
- CPU_BUILD_DIR = $(BASE_CPU)_$(PLATFORM_ADD_IN)rel
+ CPU_BUILD_DIR = $(CLAM_BASE_CPU)_$(PLATFORM_ADD_IN)rel
endif
# "BASE_OUTPUT_PATH" is the parent directory of objects for this type of
export BASE_OUTPUT_PATH = $(OUTPUT_ROOT)/$(CPU_BUILD_DIR)
# special case when doing arm-linux builds
-ifeq "$(COMPILER)" "GNU_ARM_LINUX"
- export TARGETS_DIR = $(REPOSITORY_DIR)/$(CPU_BUILD_DIR)
- # special output directory for firmware doesn't include CPU name because
+ifeq "$(CLAM_COMPILER)" "GNU_ARM_LINUX"
+ export TARGETS_STORE = $(FEISTY_MEOW_APEX)/$(CPU_BUILD_DIR)
+ # special output directory for firmware does not include CPU name because
# the repository already include the CPU name
BASE_OUTPUT_PATH = $(OUTPUT_ROOT)
endif
export OBJECT_DIR = $(OUTPUT_PATH)
# These specify where files are to be created or located for our local build.
-export EXECUTABLE_DIR = $(TARGETS_DIR)
-export DYNAMIC_LIBRARY_DIR = $(TARGETS_DIR)
-export STATIC_LIBRARY_DIR = $(TARGETS_DIR)
-#export TESTS_DIR = $(TARGETS_DIR)/tests
+export EXECUTABLE_DIR = $(TARGETS_STORE)
+export DYNAMIC_LIBRARY_DIR = $(TARGETS_STORE)
+export STATIC_LIBRARY_DIR = $(TARGETS_STORE)
# "HEADER_SEARCH_PATH" is where the class interface files are to be found.
-#HEADER_SEARCH_PATH =
-
-# "HOOPLE_HEADERS" are locations where the HOOPLE headers can be found.
-ifeq "$(HOOPLE_HEADERS)" ""
-#seems like some of this is redundant with earlier 3rdparty exploring.
- LOCUS_LIBRARY_HEADERS = $(shell bash -c '\
- if [ -d "$(REPOSITORY_DIR)/core" ]; then \
- echo "$(REPOSITORY_DIR)/core" "$(REPOSITORY_DIR)/octopi" "$(REPOSITORY_DIR)/graphiq" ; \
- else \
- echo ""; \
- fi | sed -e "s/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/" ')
- HOOPLE_HEADERS := $(shell $(FIND) $(LOCUS_LIBRARY_HEADERS) -mindepth 1 -maxdepth 1 -type d )
-endif
+# the generated store folder is added to access the build version file.
+# the binaries are added to access the system_helper.h file.
+HEADER_SEARCH_PATH = $(FEISTY_MEOW_GENERATED_STORE)/versions $(FEISTY_MEOW_BINARIES)
# "LOCAL_HEADERS" are overrides that go first in the header search path.
LOCAL_HEADERS = $(THIRD_PARTY_DIR)
HOOPLE_LIBRARIES =
# "EXTRA_COPIES" is a list of files that need to be among the files copied
-# to a project's output folder.
+# to a project output folder.
export EXTRA_COPIES
# "EXTRA_VERSIONS" is a list of version files to synchronize with the main
export DEPS_FILE = $(OUTPUT_PATH)/$(PROJECT).deps
# "NO_DEPS" is an exclusion flag. if it is defined, then no auto-dependency
-# files will be generated. this is useful if you're missing makedep or trying
+# files will be generated. this is useful if you are missing makedep or trying
# to compile it...
#NO_DEPS = t
# such files. this is needed when rebuilding version_stamper.
#OMIT_VERSIONS = t
-# Add the obligatory junk to be cleaned up. Individual compiler sections
-# should customize this by adding their object output directories.
-CLEANUPS += $(ACTUAL_TARGETS) $(OUTPUT_PATH)
+# add the cleanup values we already know.
+CLEANUPS += $(OUTPUT_PATH) $(DEPS_FILE)
+
+SUPPLEMENTAL_CLEANUP_TARGETS = cpp_add_to_cleanups_variable
# "GENDEPS" is a flag that causes dependencies to be generated into
# statically built applications.
# included (although they should be listed in a different form in LIBS_USED).
# Remember that the unix loader looks for functions in libraries in a bizarre
# way: ld searches for a function only when it has already been asked for it.
-# This means that it doesn't remember what functions it has already been
+# This means that it does not remember what functions it has already been
# provided with in the libraries and object files, and it will fail if those
# functions are only asked for after they have already been encountered.
#LOAD_FLAG_PREFIX =
# The name of the library creator tool.
#LIBRARY_TOOL =
-# the root name of the version file. This is currently irrelevant on
-# non-win32 platforms.
-VERSION_RC_ROOT = $(shell $(SHELL) $(CLAM_DIR)/cpp/rc_name.sh)
+ifeq "$(OPERATING_SYSTEM)" "WIN32"
+ # the root name of the version file. This is currently irrelevant on
+ # non-windoze platforms.
+ #CLAM_VERSION_RC_ROOT = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/rc_name.sh)
+ #hmmm: also currently irrelevant since we are only doing static builds.
+endif
ifneq "$(CONSOLE_MODE)" ""
# this definition can be used to signal different behavior when the app is
###############################################################################
# Operating system dependent flags.
+# (not so OS dependent with move to only gnu compilation...)
-ifeq "$(OP_SYSTEM)" "UNIX"
- LIB_ENDING = .a
- DYNLIB_ENDING = .so
-endif
-ifeq "$(OP_SYSTEM)" "WIN32"
- LIB_ENDING = .lib
- DYNLIB_ENDING = .dll
-endif
+LIB_ENDING = .a
+DYNLIB_ENDING = .so
###############################################################################
# Compiler Dependent Flags
#
-# "COMPILER_ROOT_DIR" is the top-level for the C++ compiler location.
-export COMPILER_ROOT_DIR
-# "COMPILER_HEADER_DIR" is where the compiler's headers are.
-export COMPILER_HEADER_DIR
+# "CLAM_COMPILER_ROOT_DIR" is the top-level for the C++ compiler location.
+# "COMPILER_HEADER_DIR" is where the compiler headers are.
# "COMPILER_LIBRARY_DIR" is where archived libraries are.
# "CC" is the name of the C++ compiler to be used.
+export COMPILER_HEADER_DIR
# These flags may be useful across multiple compilers.
#
-# SSL brings in the openSSL libraries.
-USE_SSL=
+# "USE_SSL" brings in the OpenSSL libraries.
+#USE_SSL =
-# CURL provides access to the curl library.
-USE_CURL=
+# "USE_CURL" provides access to the curl library.
+#USE_CURL =
-# Enables wxwidget library support.
-USE_WXWIDGETS=
+# "USE_WXWIDGETS" enables wxwidget library support.
+#USE_WXWIDGETS =
+
+# "USE_XWIN" specifies that this project needs X window system support.
+#USE_XWIN =
ifneq "$(OMIT_VERSIONS)" ""
DEFINITIONS += NO_VERSION
endif
-ifeq "$(COMPILER)" "GNU_LINUX"
+############################################################################
+# compiler specific section below.
+############################################################################
+
+ifeq "$(CLAM_COMPILER)" "GNU_LINUX"
# Unix GNU compiler...
CC = g++
- COMPILER_ROOT_DIR = /
PLATFORM_ADD_IN = linux_
- ARCHITECTURE = $(shell machine 2>/dev/null || arch 2>/dev/null || echo i686)
-
- export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_DIR)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
-
DEFINITIONS += _FILE_OFFSET_BITS=64
DEPENDENCY_DEFINITIONS += NO_VERSION
- 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
-
-#protect other additions to make them only for debian?
-# COMPILER_HEADER_DIR := /usr/include /usr/local/include
-
- # "USE_XWIN" specifies that this project needs X window system support.
- #USE_XWIN =
+#hmmm: uggh, can we clean up this huge list of dep adds somehow?
+ DEPENDENCY_ADDITIONS = -X/usr/include -X/usr/include/c++/$(CLAM_COMPILER_VERSION) -X/usr/include/c++/$(CLAM_COMPILER_VERSION)/tr1 -X/usr/local/include -X/usr/include/linux -X/usr/include/wx-2.8 -X/usr/lib/gcc/i586-suse-linux/$(CLAM_COMPILER_VERSION)/include -X/usr/lib/gcc/i486-linux-gnu/$(CLAM_COMPILER_VERSION)/include -X/usr/lib/gcc/i686-linux-gnu/$(CLAM_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
- ifeq "x86_64" "$(ARCHITECTURE)"
- COMPILER_LIBRARY_DIR = /lib64 /usr/lib64 /usr/local/lib64
- else
- COMPILER_LIBRARY_DIR = /lib /usr/lib /usr/local/lib
- endif
+# ifeq "x86_64" "$(CLAM_BASE_CPU)"
+# COMPILER_LIBRARY_DIR = /lib64 /usr/lib64 /usr/local/lib64
+# else
+# COMPILER_LIBRARY_DIR = /lib /usr/lib /usr/local/lib
+# endif
DEFINITIONS += __LINUX__ linux __linux__ UNIX unix __UNIX__ __USE_GNU
+
+#hmmm: move to an x win enabling area.
# X Window System not enabled by default.
#DEFINITIONS += __XWINDOWS__
# space on end is significant.
LINKER_OUTPUT_FLAG = -o
LINK_TOOL = g++
+
+ COMPILER_FLAGS += -shared-libgcc -fPIC
# compiler flags for gcc:
# -finline-functions: inline functions as needed.
# -fPIC: generate position independent code.
# -shared-libgcc: use the shared library version of compiler libraries.
# -fno-exceptions: do not support exception handling and stack unwinding.
- COMPILER_FLAGS += -shared-libgcc -fPIC
-
ifeq "$(DEBUG)" ""
# COMPILER_FLAGS += -finline-functions
endif
###COMPILER_FLAGS += -pg
###LOAD_FLAG_PREFIX += -pg
-####trying out profiling: doesn't work so well yet. generates gmon.out files
-#### in pretty random places. the parameters to the linker don't even
-#### mention this flag, and the compiler flags don't seem to provide an
-#### option for where the file goes. so, it's on hold.
+####trying out profiling: does not work so well yet. generates gmon.out files
+#### in pretty random places. the parameters to the linker do not even
+#### mention this flag, and the compiler flags do not seem to provide an
+#### option for where the file goes. so, it is on hold.
endif
endif
-ifeq "$(COMPILER)" "GNU_ARM_LINUX"
+############################################################################
+
+ifeq "$(CLAM_COMPILER)" "GNU_DARWIN"
+ # Darwin kernel GNU compiler... really more general macos (MacOS) here these days.
+ CC = g++
+ PLATFORM_ADD_IN = darwin
+ DEFINITIONS += _FILE_OFFSET_BITS=64
+
+ DEPENDENCY_DEFINITIONS += NO_VERSION
+# DEPENDENCY_ADDITIONS = -X/usr/include -X/usr/include/c++/$(CLAM_COMPILER_VERSION) -X/usr/include/c++/$(CLAM_COMPILER_VERSION)/tr1 -X/usr/local/include -X/usr/include/linux -X/usr/include/wx-2.8 -X/usr/lib/gcc/i586-suse-linux/$(CLAM_COMPILER_VERSION)/include -X/usr/lib/gcc/i486-linux-gnu/$(CLAM_COMPILER_VERSION)/include
+ DEPENDENCY_ADDITIONS = -X/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
+
+ COMPILER_HEADER_DIR := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
+#/usr/local/include /usr/include
+#old /System/Library/Frameworks/Foundation.framework/Versions/C/Headers
+#/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
+#/Library/Developer/CommandLineTools/usr/include
+
+# ifeq "x86_64" "$(CLAM_BASE_CPU)"
+# COMPILER_LIBRARY_DIR = /lib64 /usr/lib64 /usr/local/lib64
+# else
+# COMPILER_LIBRARY_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib
+##/usr/lib /usr/local/lib
+# endif
+
+ DEFINITIONS += UNIX unix __UNIX__ __USE_GNU
+
+ LIBRARY_TOOL = ar
+ LIB_PREFIX = lib
+ # special flags for getting rid of warnings on fd_set.
+ LOAD_FLAG_PREFIX=-Wl,-U,___darwin_check_fd_set_overflow
+
+ CREATE_LIBRARY_FLAG += -r
+ # space on end is significant.
+ LINKER_OUTPUT_FLAG = -o
+ LINK_TOOL = g++
+
+ # mac specific flags
+ COMPILER_FLAGS += -Wno-nullability-completeness
+#trying this one again, which had been turned off.
+ COMPILER_FLAGS += -fgnu-runtime
+
+ ifneq "$(DEBUG)" ""
+ # add in debugging flags.
+# COMPILER_FLAGS += -g3 -O0
+ endif
+endif
+
+############################################################################
+
+ifeq "$(CLAM_COMPILER)" "GNU_ARM_LINUX"
# ARM-linux GNU compiler...
- COMPILER_ROOT_DIR = /usr/local/arm-linux
- CC = $(COMPILER_ROOT_DIR)/bin/g++
- PLATFORM_ADD_IN = linux_
- export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_DIR)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
+## CLAM_COMPILER_ROOT_DIR = /usr/local/arm-linux
+#hmmm: the above is the one we may need to integrate into build_variables.sh
+ CC = $(CLAM_COMPILER_ROOT_DIR)/bin/g++
+ PLATFORM_ADD_IN = linux_
SNAPGEAR_ROOT_DIR = $(HOME)/snapgear
-
DEPENDENCY_DEFINITIONS += NO_VERSION
COMPILER_HEADER_DIR = $(SNAPGEAR_ROOT_DIR)/linux-2.4.x/include
# COMPILER_HEADER_DIR += $(SNAPGEAR_ROOT_DIR)/include
- COMPILER_HEADER_DIR += $(COMPILER_ROOT_DIR)/include $(COMPILER_ROOT_DIR)/lib
+ COMPILER_HEADER_DIR += $(CLAM_COMPILER_ROOT_DIR)/include $(CLAM_COMPILER_ROOT_DIR)/lib
COMPILER_HEADER_DIR += /usr/local/lib/gcc-lib/arm-linux/3.3.2/include
- COMPILER_LIBRARY_DIR = $(SNAPGEAR_ROOT_DIR)/lib $(COMPILER_ROOT_DIR)/lib/be
+ COMPILER_LIBRARY_DIR = $(SNAPGEAR_ROOT_DIR)/lib $(CLAM_COMPILER_ROOT_DIR)/lib/be
DEFINITIONS += linux __linux__ unix UNIX __UNIX__ __LINUX__
COMPILER_FLAGS += -Wall -Werror
endif
- LIBRARY_TOOL = $(COMPILER_ROOT_DIR)/bin/ar
+ LIBRARY_TOOL = $(CLAM_COMPILER_ROOT_DIR)/bin/ar
LIB_PREFIX = lib
CREATE_LIBRARY_FLAG += -r
# space on end is significant.
- LINK_TOOL = $(COMPILER_ROOT_DIR)/bin/g++
+ LINK_TOOL = $(CLAM_COMPILER_ROOT_DIR)/bin/g++
LINKER_OUTPUT_FLAG = -o
EXE_FLAGS = -mbig-endian
LOAD_FLAG_PREFIX += -v -mbig-endian
endif
-ifeq "$(COMPILER)" "GNU_WIN32"
+############################################################################
+
+ifeq "$(CLAM_COMPILER)" "GNU_WINDOWS"
# GNU compiler for MS Windoze...
CC = g++
- ifeq "$(COMPILER_ROOT_DIR)" ""
- COMPILER_ROOT_DIR = c:/system/mingw
- endif
-
- export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_DIR)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
-
- RC := $(COMPILER_ROOT_DIR)/bin/windres
+# RC := $(CLAM_COMPILER_ROOT_DIR)/bin/windres
PLATFORM_ADD_IN = w32_
- COMPILER_HEADER_DIR = $(COMPILER_ROOT_DIR)/include $(COMPILER_ROOT_DIR)/include/c++/3.4.2 $(COMPILER_ROOT_DIR)/lib/gcc/mingw32/3.4.2/include
-###$(COMPILER_ROOT_DIR)/usr/include/mingw $(COMPILER_ROOT_DIR)/usr/include $(COMPILER_ROOT_DIR)/usr/include/w32api $(COMPILER_ROOT_DIR)/usr/include/extras
+ COMPILER_HEADER_DIR = $(CLAM_COMPILER_ROOT_DIR)/include $(CLAM_COMPILER_ROOT_DIR)/include/c++/3.4.2
+#$(CLAM_COMPILER_ROOT_DIR)/lib/gcc/mingw32/3.4.2/include
+###$(CLAM_COMPILER_ROOT_DIR)/usr/include/mingw $(CLAM_COMPILER_ROOT_DIR)/usr/include $(CLAM_COMPILER_ROOT_DIR)/usr/include/w32api $(CLAM_COMPILER_ROOT_DIR)/usr/include/extras
- COMPILER_LIBRARY_DIR = $(COMPILER_ROOT_DIR)/lib
- DEFINITIONS += _Windows _WINDOWS WIN32 __WIN32__ __FLAT__ VC_EXTRALEAN WIN32_LEAN_AND_MEAN ATL_NO_LEAN_AND_MEAN _WIN32 __cplusplus
-#__USE_GNU
+ COMPILER_LIBRARY_DIR = $(CLAM_COMPILER_ROOT_DIR)/lib
+ DEFINITIONS += __GNU_WINDOWS__ _Windows _WINDOWS WIN32 __WIN32__ __FLAT__ VC_EXTRALEAN WIN32_LEAN_AND_MEAN ATL_NO_LEAN_AND_MEAN _WIN32
LIBRARY_TOOL = ar
-# LOAD_FLAG_PREFIX += -lpthread
+ LIBRARY_PATH_FLAG = -L
+ LIB_PREFIX = lib
+ LIB_ENDING = .a
LOAD_FLAG_PREFIX += -mwindows
CREATE_LIBRARY_FLAG += -r
# space on end is significant.
MIDL = midl -Oicf $(MIDL_DEFS) $(HEADER_SEARCH_PATH:%=-I% ) $(DEFINITIONS:%=-D% )
MIDL_DEFS = -no_robust
# some lovely definitions used by some of the mfc and other ms code.
- 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
-endif
+ 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
+#hmmm: yuck; re-evaluate need for the above dep defs.
-ifeq "$(COMPILER)" "VISUAL_CPP"
- # microsoft visual c++ 4.x, 5.x or 6.x.
-
- PLATFORM_ADD_IN = w32_
-
- TRIPART_VERSION =
-
- CLEANUPS += $(PDB_DIR)/$(PROJECT)_bookkeeping.pdb
-#hmmm: import libs for dynamic libraries on ms-win32 don't currently get
-# cleaned up nicely.
-
- # ensure that any setting for this is seen by sub-shells.
- export WIN32_MANIFEST_FILE
-
- # these define special characteristics for a program being built.
- # BASE is almost always defined and pulls in fundamental w32 support.
- # RPC supplies the remote procedure call libraries.
- # SECURITY links with the w32 security APIs.
- # CLR sets options that are appropriate for managed code.
- VCPP_USE_BASE=true
- VCPP_USE_RPC=
- VCPP_USE_OLE=
- VCPP_USE_SECURITY=
- VCPP_USE_CLR=
- VCPP_VISTA_ICON=
-
- # the framework dir points at the .net framework to be used for compilation.
- ifeq "$(FRAMEWORK_VERSION)" ""
-
- # older .net 1.1.
-# SHORT_FRAMEWORK_VERSION = 1.1
-# FRAMEWORK_VERSION = $(SHORT_FRAMEWORK_VERSION).4322
-
- # current .net 2.0.
- SHORT_FRAMEWORK_VERSION = 2.0
- FRAMEWORK_VERSION = $(SHORT_FRAMEWORK_VERSION).50727
- endif
- ifeq "$(FRAMEWORK_DIR)" ""
- FRAMEWORK_DIR = $(subst \,/,$(WINDIR))/Microsoft.NET/Framework/v$(FRAMEWORK_VERSION)
- endif
-
- # calculate the visual studio root directory.
- ifeq "$(VIS_STU_ROOT)" ""
- export VIS_STU_ROOT := $(shell $(SHELL) $(CLAM_DIR)/cpp/ms_root_dir.sh )
- endif
- ifneq "$(VIS_STU_ROOT)" ""
- export COMPILER_ROOT_DIR = $(VIS_STU_ROOT)/vc
- endif
- ifeq "$(COMPILER_ROOT_DIR)" ""
- HOSEUP = $(shell echo The compiler directory is not set. Please define the environment variable)
- HOSEUP = $(shell echo VSxCOMNTOOLS (x=80, 90 or 100) to point at the folder where visual )
- HOSEUP = $(shell echo Studio is installed.)
- HOSEUP =
- endif
-
- # redo the compiler version with our new info.
- export COMPILER_VERSION := $(shell $(SHELL) $(CLAM_DIR)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
-
- # set up a directory for debugging files to be stored. these are not
- # moved with the postconditions--they are generated in place.
- export PDB_DIR = $(TARGETS_DIR)
-
- # set these way up here so we can override them later.
- CC = $(COMPILER_ROOT_DIR)/bin/cl
- LINK_TOOL = $(COMPILER_ROOT_DIR)/bin/link
-
- # This is needed to protect against the use of 64-bit time_t structure
- # on windows. We are casting to time_t from a 32-bit structure.
- DEFINITIONS += _USE_32BIT_TIME_T
-
- # vary the locations for compiler files based on the version.
- ifeq "$(COMPILER_VERSION)" "6"
- COMPILER_HEADER_DIR = $(COMPILER_ROOT_DIR)/include $(COMPILER_ROOT_DIR)/atl/include
- COMPILER_LIBRARY_DIR = $(COMPILER_ROOT_DIR)/lib $(COMPILER_ROOT_DIR)/atl/lib
- RC = $(COMPILER_ROOT_DIR)/../common/msdev98/bin/rc
- endif
- ifeq "$(COMPILER_VERSION)" "7"
- COMPILER_HEADER_DIR = $(COMPILER_ROOT_DIR)/include $(COMPILER_ROOT_DIR)/atlmfc/include $(COMPILER_ROOT_DIR)/platformsdk/include $(FRAMEWORK_DIR)
- COMPILER_LIBRARY_DIR = $(COMPILER_ROOT_DIR)/lib $(COMPILER_ROOT_DIR)/atlmfc/lib $(COMPILER_ROOT_DIR)/platformsdk/lib
- RC = $(COMPILER_ROOT_DIR)/bin/rc
- COMPILER_FLAGS += -Zc:forScope
- # turn on proper loop scoping.
- endif
- ifeq "$(COMPILER_VERSION)" "8"
- COMPILER_HEADER_DIR = $(COMPILER_ROOT_DIR)/include $(COMPILER_ROOT_DIR)/atlmfc/include $(COMPILER_ROOT_DIR)/platformsdk/include $(FRAMEWORK_DIR)
- COMPILER_LIBRARY_DIR = $(COMPILER_ROOT_DIR)/lib $(COMPILER_ROOT_DIR)/atlmfc/lib $(COMPILER_ROOT_DIR)/platformsdk/lib
- RC = $(COMPILER_ROOT_DIR)/bin/rc
- COMPILER_FLAGS += -Zc:forScope
- # turn on proper loop scoping.
- DEFINITIONS += _WIN32_WINNT=0x501
- DEPENDENCY_DEFINITIONS += _WIN32_WINNT=0x501
- endif
-#
-# ver 9 (vis stu 2008) is not in here but is probably similar to 8 or 10.
-#
- ifeq "$(COMPILER_VERSION)" "10"
- export PLATYPUS = $(WindowsSdkDir)
- COMPILER_HEADER_DIR = $(COMPILER_ROOT_DIR)/include $(COMPILER_ROOT_DIR)/atlmfc/include $(PLATYPUS)/include
-## $(FRAMEWORK_DIR)
- COMPILER_LIBRARY_DIR = $(COMPILER_ROOT_DIR)/lib $(COMPILER_ROOT_DIR)/atlmfc/lib $(PLATYPUS)/lib
- DEFINITIONS += _WIN32_WINNT=0x501
- DEPENDENCY_DEFINITIONS += _WIN32_WINNT=0x501
- RC = $(PLATYPUS)/bin/rc
- COMPILER_FLAGS += -Zc:forScope
- # turn on proper loop scoping.
- endif
- ifeq "$(COMPILER_HEADER_DIR)" ""
- HOSEUP = $(shell echo The compiler version is not set. Please define COMPILER_VERSION.)
- endif
- ifeq "$(COMPILER_HEADER_DIR)" ""
- HOSEUP = $(shell echo The compiler version is not set. Please define COMPILER_VERSION.)
- endif
- ifeq "$(COMPILER_HEADER_DIR)" "0"
- HOSEUP = $(shell echo The compiler version is not set. Please define COMPILER_VERSION.)
- endif
-
- # add in the mfc directories.
- COMPILER_HEADER_DIR += $(COMPILER_ROOT_DIR)/mfc/include
- COMPILER_LIBRARY_DIR += $(COMPILER_ROOT_DIR)/mfc/lib
-
- DEFINITIONS += _Windows _WINDOWS WIN32 __WIN32__ __FLAT__ VC_EXTRALEAN WIN32_LEAN_AND_MEAN ATL_NO_LEAN_AND_MEAN
- DEF_FILE =
- LIBRARY_TOOL = $(COMPILER_ROOT_DIR)/bin/lib
- LOAD_FLAG_PREFIX = -subsystem:windows -machine:X86 -nologo
- LOAD_FLAG_SUFFIX =
-
- MIDL = "$(COMPILER_ROOT_DIR)/../Common7/Tools/Bin"/midl.exe -Oicf $(MIDL_DEFS) $(HEADER_SEARCH_PATH:%=-I% ) $(DEFINITIONS:%=-D% )
- MIDL_DEFS = -no_robust
-
- # additional definitions that get put on the command line for makedep. these
- # are needed since visual c++ defines them automatically.
- DEPENDENCY_DEFINITIONS += __cplusplus _WIN32 _CHAR_UNSIGNED M_I86 _M_I86 _MSC_VER=1200 _M_IX86=500 __RPC_WIN32__ __RPCNDR_H_VERSION__ __RPCPROXY_H_VERSION__ TARGET_IS_NT40_OR_LATER PGM_SETCHILD _MFC_VER=0x0600
-
- # set the flags used by visual c++.
- CREATE_LIBRARY_FLAG = -out:
- LIBRARY_NAME_FLAG =
- LIBRARY_PATH_FLAG = -libpath:
- LINKER_OPTION_SEPARATOR = -link
- LINKER_OUTPUT_FLAG = -out:
- OBJECT_NAME_FLAG = -Fo
-
- # Add the extra files created by visual c++.
-#is this needed now that we whack whole output path? CLEANUPS += $(OUTPUT_PATH)/*.*db
-
- # compilation parameters for microsoft.
- # -c specifies compilation without linking.
- # -EHsc is the flag for turning on exception handling.
- # -FD is for getting the best dependency checking in visual studio.
- # -Fd[filename] names the program database (PDB) file used for debugging.
- # -Fp[filename] names the precompiled header file name.
- # -FR[filename] names the browser output path used for source analysis.
- # -Gd calling convention is cdecl.
- # -Gm enables minimal rebuild (only if source files changed).
- # Note! as of Visual Studio 6 SP 3, minimal rebuild does not work
- # properly. Do not use it unless you want inconsistent builds!
- # -GR enables run-time type identification (RTTI).
- # -GS enables buffer checking.
- # -GX turns on synchronous exception handling. (deprecated)
- # -Gz uses __stdcall calling convention.
- # -MD specifies multi-threaded DLL (MDd means debug).
- # -ML signifies uni-threaded executable (MLd means debug).
- # -MT indicates multi-threaded executable (MTd means debug)
- # -O is for optimization (1 small code, 2 fast code, d disabled).
- # don't use 1 or 2 though; they both include "global optimization",
- # which seems plagued with problems. the specific optimizations are:
- # -Oa assume no aliasing
- # -Obn inline function expansion, where n is 1 (enable) or 0 (disable)
- # -Od disable (for debug)
- # -Oi generate intrinsic functions
- # -Og global optimizations (flawed)
- # -Op improve float consistency
- # -Os favor small code
- # -Ot favor fast code
- # -Ow assume aliasing across function calls
- # -Ox full optimization
- # -Oy frame pointer optimization
- # -O1 has g s y b1 Gs Gf Gy
- # -O2 has g i t y b1 Gs Gf Gy
- # -TP C++ compilation.
- # -W sets the warning level (from 0 (least warnings) through 4 (loudest)).
- # -WX turns all warnings into errors.
- # -Yu[filename] uses a precompiled header file.
- # -YX turns on precompiled headers. not used due to poor implementation.
- # -Zi generates debugging information into the PDB file.
-
- # put the common flags into the compiler flags.
- COMPILER_FLAGS += -nologo -Fd$(PDB_DIR)/$(PROJECT)_bookkeeping.pdb -GR -W3 -Zi -EHsc -GS -Gd
-#-Wp64
-
- ifneq "$(DEBUG)" ""
- # disable function inlining and optimizations for debug.
- COMPILER_FLAGS += -Ob0 -Od
- else
- # enable function inlining for release only.
- COMPILER_FLAGS += -Ob1
-
- ifneq "$(OPTIMIZE)" ""
- # add in fast code optimization.
- COMPILER_FLAGS += -O2
- else
- # no optimizations.
- endif
-
- endif
-
- # linking parameters for microsoft.
- # -dll specifies that a dynamic library is to be created.
- # -debug specifies that debugging information is to be included.
- # -map turns on the map file.
- # -warn sets the warning level, from 0 to 3, where 3 is the most verbose.
- # kernel32.lib is the kernel support.
- # user32.lib is the user level support.
- # gdi32.lib is the graphical device interface? support.
- # winspool.lib contains printer support.
- # comdlg32.lib provides the common dialogs.
- # advapi32.lib provides deeper win32 features, like registry, services, etc.
- # shell32.lib is ?
- # ole32.lib supplies OLE support.
- # oleaut32.lib is the OLE automation library.
- # uuid.lib has unique id management?
- # odbc32.lib provides ODBC data source functionality.
- # odbccp32.lib is something?
- # winmm.lib has the win32 multimedia support.
- # version.lib offers up splendid version services.
-
- # check if profiling is to be enabled.
- PROFILER_FLAG =
- ifneq "$(PROFILE)" ""
- PROFILER_FLAG = -profile
- endif
-
- LIBS_USED += htmlhelp.lib
-
- # add the common linker flags. the debugging flag is added because we
- # want to be able to debug into release code, but since the pdb files
- # are separate, we're not exposing ourselves when we don't include them.
- LOAD_FLAG_PREFIX += $(PROFILER_FLAG) -debug -opt:ref -opt:icf
-#-warn:3
-
- # "USE_MFC" dictates whether mfc should be allowed in the application.
- # the default is not to use MFC extension style dlls. this can be turned
- # on in the individual makefiles that require MFC.
- #USE_MFC =
-
- # the library creator gets a couple of flags.
- LIBRARIAN_FLAGS += -nologo -machine:X86 -subsystem:windows
-
- # now, vary the flag configuration based on the flags that have been set.
-
- ifneq "$(CONSOLE_MODE)" ""
- # console type of applications are built using the static flag so that
- # they are more redistributable.
- DEFINITIONS += _CONSOLE
- LOAD_FLAG_SUFFIX += -subsystem:console
- LIBRARIAN_FLAGS += -subsystem:console
- endif
-
- # dynamically linked library or application flags.
- ifneq "$(DEBUG)" ""
- # debug.
- DEFINITIONS += _DEBUG
- COMPILER_FLAGS += -MDd
- else
- # release.
- DEFINITIONS += NDEBUG
- COMPILER_FLAGS += -MD
- LOAD_FLAG_PREFIX += -map
- endif
-
- ifneq "$(STRICT_WARNINGS)" ""
- COMPILER_FLAGS += -WX
-#would like to add W4 but that triggers warnings in ms's own headers.
- endif
-
-endif
-
-ifeq "$(COMPILER)" "GNU_DARWIN"
- # Darwin kernel GNU compiler...
- CC = g++
- COMPILER_ROOT_DIR = /
- PLATFORM_ADD_IN = darwin
- ARCHITECTURE = $(shell machine 2>/dev/null || arch 2>/dev/null || echo i686)
-# COMPILER_FLAGS += -fgnu-runtime
-
- export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_DIR)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
-
- DEFINITIONS += _FILE_OFFSET_BITS=64
-
- DEPENDENCY_DEFINITIONS += NO_VERSION
- 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
-
-#protect other additions to make them only for debian?
-# COMPILER_HEADER_DIR := /usr/include /usr/local/include
- COMPILER_HEADER_DIR := /System/Library/Frameworks/Foundation.framework/Versions/C/Headers
-
- # "USE_XWIN" specifies that this project needs X window system support.
- #USE_XWIN =
-
-# ifeq "x86_64" "$(ARCHITECTURE)"
-# COMPILER_LIBRARY_DIR = /lib64 /usr/lib64 /usr/local/lib64
-# else
-
- COMPILER_LIBRARY_DIR = /usr/lib
-###/usr/local/lib
-#/lib
-
-# endif
- DEFINITIONS += __LINUX__ linux __linux__ UNIX unix __UNIX__ __USE_GNU
- # X Window System not enabled by default.
- #DEFINITIONS += __XWINDOWS__
-
- LIBRARY_TOOL = ar
- LIB_PREFIX = lib
-# LOAD_FLAG_PREFIX += -Xlinker
-#mac has no o3???
-#-O3
-
-# -Xlinker --print-map : shows what went in and why.
-# -Xlinker -O3 : linker optimization
- CREATE_LIBRARY_FLAG += -r
- # space on end is significant.
- LINKER_OUTPUT_FLAG = -o
- LINK_TOOL = g++
-# COMPILER_FLAGS += -shared-libgcc -fPIC
-#old: -Wl,-export-dynamic
-# ifeq "$(DEBUG)" ""
-# COMPILER_FLAGS += -finline-functions
-# endif
-# ifneq "$(STRICT_WARNINGS)" ""
-# COMPILER_FLAGS += -Wall -Werror -Wextra -pedantic-errors -Wno-long-long
-# endif
-# LIBS_USED += dl pthread rt
-#mac no like these libs
- # dl=dynamic library.
- # pthread=thread libraries.
- # rt=real time libraries for shared memory.
-
- ifneq "$(DEBUG)" ""
- # add in debugging flags.
-# COMPILER_FLAGS += -g3 -O0
- endif
endif
############################################################################
# these activities are done after the compiler specific stuff.
# add a definition for programs to be able to differentiate the versions.
-DEFINITIONS += COMPILER_VERSION=$(COMPILER_VERSION)
+DEFINITIONS += CLAM_COMPILER_VERSION=$(CLAM_COMPILER_VERSION)
# set a variable that scripts can use to get most of the definitions.
export VARIABLE_DEFINITION_SET := $(DEFINITIONS)