endif
ifeq "$(PARAMETER_FILE)" ""
# last ditch attempt to get one that will work.
- export PARAMETER_FILE = $(PRODUCTION_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 "$(FEISTY_MEOW_DIR)" ""
+#no # set the repository directory if it is still set to the base version.
+#ifeq "$(FEISTY_MEOW_APEX)" ""
# ifeq "$(OP_SYSTEM)" "UNIX"
-# export FEISTY_MEOW_DIR = $(HOME)/hoople
+# export FEISTY_MEOW_APEX = $(HOME)/hoople
# endif
# ifeq "$(OP_SYSTEM)" "WIN32"
-# export FEISTY_MEOW_DIR = l:
+# export FEISTY_MEOW_APEX = l:
# endif
#endif
-#export CLAM_BIN = $(CLAM_DIR)/../bin
+#export CLAM_BINARIES = $(CLAM_SCRIPTS)/../bin
###############################################################################
# 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
+#COMPILER := GNU_LINUX | GNU_ARM_LINUX | GNU_DARWIN | GNU_WINDOWS | VISUAL_CPP
# choose a default compiler if none was specified.
ifeq "$(COMPILER)" ""
endif
endif
ifeq "$(OP_SYSTEM)" "WIN32"
-# COMPILER := GNU_WIN32
+# COMPILER := GNU_WINDOWS
COMPILER := VISUAL_CPP
endif
ifeq "$(COMPILER)" ""
# "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
# special case when doing arm-linux builds
ifeq "$(COMPILER)" "GNU_ARM_LINUX"
- export TARGETS_DIR = $(FEISTY_MEOW_DIR)/$(CPU_BUILD_DIR)
- # special output directory for firmware doesn't include CPU name because
+ 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 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 =
+# we add the generated store folder for the build version file.
+HEADER_SEARCH_PATH = $(FEISTY_MEOW_GENERATED_STORE)/versions
# "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 "$(FEISTY_MEOW_DIR)/nucleus" ]; then \
- echo "$(FEISTY_MEOW_DIR)/nucleus" "$(FEISTY_MEOW_DIR)/octopi" "$(FEISTY_MEOW_DIR)/graphiq" ; \
+ if [ -d "$(FEISTY_MEOW_APEX)/nucleus" ]; then \
+ echo "$(FEISTY_MEOW_APEX)/nucleus" "$(FEISTY_MEOW_APEX)/octopi" "$(FEISTY_MEOW_APEX)/graphiq" ; \
else \
echo ""; \
- fi | sed -e "s/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/" ')
+ fi | tr "\\\\" / | sed -e "s/\([a-zA-Z]\):\/\([^ ]*\)/\/cygdrive\/\1\/\2/g" ')
+ # above assumes cygwin support for windows! was assuming msys support.
HOOPLE_HEADERS := $(shell $(FIND) $(LOCUS_LIBRARY_HEADERS) -mindepth 1 -maxdepth 1 -type d )
endif
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 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)
+VERSION_RC_ROOT = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/rc_name.sh)
ifneq "$(CONSOLE_MODE)" ""
# this definition can be used to signal different behavior when the app is
DYNLIB_ENDING = .so
endif
ifeq "$(OP_SYSTEM)" "WIN32"
- LIB_ENDING = .lib
- DYNLIB_ENDING = .dll
+ ifeq "$(COMPILER)" "VISUAL_CPP"
+ LIB_ENDING = .lib
+ DYNLIB_ENDING = .dll
+ else
+ LIB_ENDING = .a
+ DYNLIB_ENDING = .so
+ endif
endif
###############################################################################
#
# "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.
+# "COMPILER_HEADER_DIR" is where the compiler headers are.
export COMPILER_HEADER_DIR
# "COMPILER_LIBRARY_DIR" is where archived libraries are.
# "CC" is the name of the C++ compiler to be used.
# These flags may be useful across multiple compilers.
#
-# SSL brings in the openSSL libraries.
+# SSL brings in the OpenSSL libraries.
USE_SSL=
# CURL provides access to the curl library.
DEFINITIONS += NO_VERSION
endif
+############################################################################
+# compiler specific section below.
+############################################################################
+
ifeq "$(COMPILER)" "GNU_LINUX"
# Unix GNU compiler...
CC = g++
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) )
+ export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_SCRIPTS)/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 -X/usr/lib/gcc/x86_64-linux-gnu/$(COMPILER_VERION)/include -X/usr/include/x86_64-linux-gnu
+ 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
# "USE_XWIN" specifies that this project needs X window system support.
#USE_XWIN =
###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"
# 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) )
+ export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
SNAPGEAR_ROOT_DIR = $(HOME)/snapgear
endif
-ifeq "$(COMPILER)" "GNU_WIN32"
+############################################################################
+
+ifeq "$(COMPILER)" "GNU_WINDOWS"
# GNU compiler for MS Windoze...
CC = g++
ifeq "$(COMPILER_ROOT_DIR)" ""
- COMPILER_ROOT_DIR = c:/system/mingw
+ COMPILER_ROOT_DIR = $(CYGROOT)
endif
- export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_DIR)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
+ export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
RC := $(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_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_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
+ DEFINITIONS += __GNU_WINDOWS__ _Windows _WINDOWS WIN32 __WIN32__ __FLAT__ VC_EXTRALEAN WIN32_LEAN_AND_MEAN ATL_NO_LEAN_AND_MEAN _WIN32 __USE_W32_SOCKETS
+#__cplusplus
#__USE_GNU
LIBRARY_TOOL = ar
+ LIBRARY_PATH_FLAG = -L
+ LIB_PREFIX = lib
+ LIB_ENDING = .a
# LOAD_FLAG_PREFIX += -lpthread
LOAD_FLAG_PREFIX += -mwindows
CREATE_LIBRARY_FLAG += -r
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
+############################################################################
+
ifeq "$(COMPILER)" "VISUAL_CPP"
# microsoft visual c++ 4.x, 5.x or 6.x.
TRIPART_VERSION =
CLEANUPS += $(PDB_DIR)/$(PROJECT)_bookkeeping.pdb
-#hmmm: import libs for dynamic libraries on ms-win32 don't currently get
+#hmmm: import libs for dynamic libraries on ms-win32 do not currently get
# cleaned up nicely.
# ensure that any setting for this is seen by sub-shells.
# calculate the visual studio root directory.
ifeq "$(VIS_STU_ROOT)" ""
- export VIS_STU_ROOT := $(shell $(SHELL) $(CLAM_DIR)/cpp/ms_root_dir.sh )
+ export VIS_STU_ROOT := $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/ms_root_dir.sh )
endif
ifneq "$(VIS_STU_ROOT)" ""
- export COMPILER_ROOT_DIR = $(VIS_STU_ROOT)/vc
+ 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)
endif
# redo the compiler version with our new info.
- export COMPILER_VERSION := $(shell $(SHELL) $(CLAM_DIR)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
+ export COMPILER_VERSION := $(shell $(SHELL) $(CLAM_SCRIPTS)/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)
+ export PDB_DIR = $(TARGETS_STORE)
# set these way up here so we can override them later.
- CC = bash $(BUILD_SCRIPTS_DIR)/wrapdoze.sh $(COMPILER_ROOT_DIR)/bin/cl
- LINK_TOOL = bash $(BUILD_SCRIPTS_DIR)/wrapdoze.sh $(COMPILER_ROOT_DIR)/bin/link
+ CC = $(BUILD_SCRIPTS_PATH)/wrapdoze.sh $(COMPILER_ROOT_DIR)/bin/cl.exe
+ LINK_TOOL = $(BUILD_SCRIPTS_PATH)/wrapdoze.sh $(COMPILER_ROOT_DIR)/bin/link.exe
+ LIBRARY_TOOL = $(BUILD_SCRIPTS_PATH)/wrapdoze.sh $(COMPILER_ROOT_DIR)/bin/lib
# 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.
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
+ RC = $(BUILD_SCRIPTS_PATH)/wrapdoze.sh $(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
+ RC = $(BUILD_SCRIPTS_PATH)/wrapdoze.sh $(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
+ RC = $(BUILD_SCRIPTS_PATH)/wrapdoze.sh $(COMPILER_ROOT_DIR)/bin/rc
COMPILER_FLAGS += -Zc:forScope
# turn on proper loop scoping.
DEFINITIONS += _WIN32_WINNT=0x501
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
+ RC = $(BUILD_SCRIPTS_PATH)/wrapdoze.sh $(PLATYPUS)/bin/rc
COMPILER_FLAGS += -Zc:forScope
# turn on proper loop scoping.
endif
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 =
# -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",
+ # do not 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)
# 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.
+ # are separate, we are not exposing ourselves when we do not include them.
LOAD_FLAG_PREFIX += $(PROFILER_FLAG) -debug -opt:ref -opt:icf
#-warn:3
# now, vary the flag configuration based on the flags that have been set.
+####override for windows since things are broken with WinMain
+###export CONSOLE_MODE = true
+
ifneq "$(CONSOLE_MODE)" ""
# console type of applications are built using the static flag so that
# they are more redistributable.
ifneq "$(STRICT_WARNINGS)" ""
COMPILER_FLAGS += -WX
-#would like to add W4 but that triggers warnings in ms's own headers.
+#would like to add W4 but that triggers warnings in microsoft headers.
endif
endif
+############################################################################
+
ifeq "$(COMPILER)" "GNU_DARWIN"
# Darwin kernel GNU compiler...
CC = g++
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) )
+ export COMPILER_VERSION = $(shell $(SHELL) $(CLAM_SCRIPTS)/cpp/get_version.sh $(COMPILER) $(COMPILER_ROOT_DIR) )
DEFINITIONS += _FILE_OFFSET_BITS=64