>From 6a82b3a91af50a8044028589fcc005d101b6f66e Mon Sep 17 00:00:00 2001 From: Peter Bex Date: Sat, 25 Jan 2014 21:36:40 +0100 Subject: [PATCH 3/3] Remove more Makefile redundancy Remove even more ugly duplication in Mingw Makefile by moving the quoting style into a function which depends on the shell type. Now the call looks pretty ugly, but in time we can hopefully replace the $(call echo, >>, $@,foo) pattern with $(file >> $@,foo) At least this reduces the possibility of mistakes when tweaking the generated chicken header files or resource files. --- Makefile.mingw | 177 --------------------------- defaults.make | 368 ++++++++++++++++++++++++++++---------------------------- 2 files changed, 182 insertions(+), 363 deletions(-) diff --git a/Makefile.mingw b/Makefile.mingw index 9f803e7..aa7ab00 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -73,7 +73,6 @@ LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,lib$(PROGRAM_PREFIX)chicken$(PRO LIBCHICKEN_SO_LIBRARIES = -lm -lws2_32 LIBCHICKEN_IMPORT_LIBRARY = lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a MAKEDIR_COMMAND_OPTIONS = -CUSTOM_RC_FILE = 1 # special files @@ -83,8 +82,6 @@ POSIXFILE = posixwin # select default and internal settings -CUSTOM_CHICKEN_DEFAULTS=1 - include $(SRCDIR)defaults.make chicken-config.h: chicken-defaults.h @@ -122,178 +119,4 @@ ifneq ($(HACKED_APPLY),) endif type chicken-defaults.h >>$@ -chicken-defaults.h: -ifdef OPTIMIZE_FOR_SPEED - echo /* (this build was optimized for speed) */ >>$@ -endif - echo #define C_CHICKEN_PROGRAM "$(CHICKEN_PROGRAM)$(EXE)" >>$@ - echo #define C_WINDOWS_SHELL 1 >>$@ - echo #ifndef C_INSTALL_CC >>$@ - echo # define C_INSTALL_CC "$(C_COMPILER)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_CXX >>$@ - echo # define C_INSTALL_CXX "$(CXX_COMPILER)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_RC_COMPILER >>$@ - echo # define C_INSTALL_RC_COMPILER "$(RC_COMPILER)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_CFLAGS >>$@ - echo # define C_INSTALL_CFLAGS "$(C_COMPILER_OPTIONS) $(C_COMPILER_OPTIMIZATION_OPTIONS)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_LDFLAGS >>$@ - echo # define C_INSTALL_LDFLAGS "$(LINKER_OPTIONS) $(LINKER_OPTIMIZATION_OPTIONS)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_PREFIX >>$@ - echo # define C_INSTALL_PREFIX "$(PREFIX)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_SHARE_HOME >>$@ - echo # define C_INSTALL_SHARE_HOME "$(DATADIR)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_BIN_HOME >>$@ - echo # define C_INSTALL_BIN_HOME "$(BINDIR)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_EGG_HOME >>$@ - echo # define C_INSTALL_EGG_HOME "$(EGGDIR)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_LIB_HOME >>$@ - echo # define C_INSTALL_LIB_HOME "$(LIBDIR)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_LIB_NAME >>$@ - echo # define C_INSTALL_LIB_NAME "$(INSTALL_LIB_NAME)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_STATIC_LIB_HOME >>$@ - echo # define C_INSTALL_STATIC_LIB_HOME "$(LIBDIR)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_INCLUDE_HOME >>$@ - echo # define C_INSTALL_INCLUDE_HOME "$(INCDIR)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_MORE_LIBS >>$@ - echo # define C_INSTALL_MORE_LIBS "$(LIBRARIES)" >>$@ - echo #endif >>$@ - echo #ifndef C_INSTALL_MORE_STATIC_LIBS >>$@ - echo # define C_INSTALL_MORE_STATIC_LIBS "$(LIBRARIES)" >>$@ - echo #endif >>$@ - echo #ifndef C_DEFAULT_TARGET_HEAP_SIZE >>$@ - echo # define C_DEFAULT_TARGET_HEAP_SIZE 0 >>$@ - echo #endif >>$@ - echo #ifndef C_STACK_GROWS_DOWNWARD >>$@ - echo # define C_STACK_GROWS_DOWNWARD $(STACKDIRECTION) >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_MORE_LIBS >>$@ - echo # define C_TARGET_MORE_LIBS "$(TARGET_LIBRARIES)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_MORE_STATIC_LIBS >>$@ - echo # define C_TARGET_MORE_STATIC_LIBS "$(TARGET_LIBRARIES)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_CC >>$@ - echo # define C_TARGET_CC "$(TARGET_C_COMPILER)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_CXX >>$@ - echo # define C_TARGET_CXX "$(TARGET_CXX_COMPILER)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_RC_COMPILER >>$@ - echo # define C_TARGET_RC_COMPILER "$(TARGET_RC_COMPILER)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_CFLAGS >>$@ - echo # define C_TARGET_CFLAGS "$(TARGET_C_COMPILER_OPTIONS) $(TARGET_C_COMPILER_OPTIMIZATION_OPTIONS)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_LDFLAGS >>$@ - echo # define C_TARGET_LDFLAGS "$(TARGET_LINKER_OPTIONS) $(TARGET_LINKER_OPTIMIZATION_OPTIONS)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_FEATURES >>$@ - echo # define C_TARGET_FEATURES "$(TARGET_FEATURES)" >>$@ - echo #endif >>$@ - echo #ifndef C_CROSS_CHICKEN >>$@ - echo # define C_CROSS_CHICKEN $(CROSS_CHICKEN) >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_PREFIX >>$@ - echo # define C_TARGET_PREFIX "$(TARGET_PREFIX)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_BIN_HOME >>$@ - echo # define C_TARGET_BIN_HOME "$(TARGET_PREFIX)/bin" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_LIB_HOME >>$@ - echo # define C_TARGET_LIB_HOME "$(TARGET_PREFIX)/lib" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_LIB_NAME >>$@ - echo # define C_TARGET_LIB_NAME "$(TARGET_LIB_NAME)" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_RUN_LIB_HOME >>$@ - echo # define C_TARGET_RUN_LIB_HOME "$(TARGET_PREFIX)/bin" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_SHARE_HOME >>$@ - echo # define C_TARGET_SHARE_HOME "$(TARGET_PREFIX)/share" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_INCLUDE_HOME >>$@ - echo # define C_TARGET_INCLUDE_HOME "$(TARGET_PREFIX)/include/chicken" >>$@ - echo #endif >>$@ - echo #ifndef C_TARGET_STATIC_LIB_HOME >>$@ - echo # define C_TARGET_STATIC_LIB_HOME "$(TARGET_PREFIX)/lib" >>$@ - echo #endif >>$@ - echo #ifndef C_CSC_PROGRAM >>$@ - echo # define C_CSC_PROGRAM "$(CSC_PROGRAM)" >>$@ - echo #endif >>$@ - echo #ifndef C_CSI_PROGRAM >>$@ - echo # define C_CSI_PROGRAM "$(CSI_PROGRAM)" >>$@ - echo #endif >>$@ - echo #ifndef C_CHICKEN_BUG_PROGRAM >>$@ - echo # define C_CHICKEN_BUG_PROGRAM "$(CHICKEN_BUG_PROGRAM)" >>$@ - echo #endif >>$@ - echo #ifndef C_CHICKEN_INSTALL_PROGRAM >>$@ - echo # define C_CHICKEN_INSTALL_PROGRAM "$(CHICKEN_INSTALL_PROGRAM)" >>$@ - echo #endif >>$@ - echo #ifndef C_CHICKEN_UNINSTALL_PROGRAM >>$@ - echo # define C_CHICKEN_UNINSTALL_PROGRAM "$(CHICKEN_UNINSTALL_PROGRAM)" >>$@ - echo #endif >>$@ - echo #ifndef C_CHICKEN_STATUS_PROGRAM >>$@ - echo # define C_CHICKEN_STATUS_PROGRAM "$(CHICKEN_STATUS_PROGRAM)" >>$@ - echo #endif >>$@ - echo #ifndef C_BINARY_VERSION >>$@ - echo # define C_BINARY_VERSION $(BINARYVERSION) >>$@ - echo #endif >>$@ - echo #ifndef C_USES_SONAME >>$@ -ifdef USES_SONAME - echo # define C_USES_SONAME 1 >>$@ -else - echo # define C_USES_SONAME 0 >>$@ -endif - echo #endif >>$@ - echo /* END OF FILE */ >>$@ - -chicken-install.rc: - echo /* GENERATED */ >$@ - echo 1 24 MOVEABLE PURE >>$@ - echo BEGIN >>$@ - echo "\r\n" >>$@ - echo "\r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo "\r\n" >>$@ - echo END >>$@ - echo /* END OF FILE */ >>$@ - -chicken-uninstall.rc: - echo /* END OF FILE */ >$@ - echo 1 24 MOVEABLE PURE >>$@ - echo BEGIN >>$@ - echo "\r\n" >>$@ - echo "\r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo " \r\n" >>$@ - echo "\r\n" >>$@ - echo END >>$@ - echo /* END OF FILE */ >>$@ - include $(SRCDIR)rules.make diff --git a/defaults.make b/defaults.make index 8cf5dff..a92630a 100644 --- a/defaults.make +++ b/defaults.make @@ -225,11 +225,15 @@ COPY_COMMAND = copy /Y HOSTNAME ?= $(shell hostname) UNAME_SYS ?= Windows BUILD_TAG ?= compiled $(BUILD_TIME) on $(HOSTNAME) ($(UNAME_SYS)) +# This is a poor man's version of $(file ...) in GNU Make 4.0 +# We should consider replacing it when it becomes so widespread +# that systems (Debian, OS X, Haiku, Mingw, Cygwin) are shipping it +echo = echo $(3)$(1)$(2) else COPY_COMMAND = cp +echo = echo '$(subst ','\'',$(3))'$(1)$(2) +#' fix Emacs syntax highlighting endif -COPYMANY = - # file extensions @@ -340,203 +344,195 @@ all: $(TARGETS) # generic part of chicken-config.h -# IMPORTANT: If you change anything here, remember to make a -# corresponding change in the makefiles which have -# CUSTOM_CHICKEN_DEFAULTS (currently only mingw) -ifndef CUSTOM_CHICKEN_DEFAULTS chicken-defaults.h: ifdef OPTIMIZE_FOR_SPEED - echo "/* (this build was optimized for speed) */" >$@ + $(call echo, >,$@, /* (this build was optimized for speed) */) endif ifdef DEBUGBUILD - echo "#define DEBUGBUILD 1" >> $@ -endif - echo "#define C_CHICKEN_PROGRAM \"$(CHICKEN_PROGRAM)$(EXE)\"" >>$@ - echo "#ifndef C_INSTALL_CC" >>$@ - echo "# define C_INSTALL_CC \"$(C_COMPILER)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_CXX" >>$@ - echo "# define C_INSTALL_CXX \"$(CXX_COMPILER)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_RC_COMPILER" >>$@ - echo "# define C_INSTALL_RC_COMPILER \"$(RC_COMPILER)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_POSTINSTALL_PROGRAM" >>$@ - echo "# define C_INSTALL_POSTINSTALL_PROGRAM \"$(POSTINSTALL_PROGRAM)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_CFLAGS" >>$@ - echo "# define C_INSTALL_CFLAGS \"$(C_COMPILER_OPTIONS) $(C_COMPILER_OPTIMIZATION_OPTIONS)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_LDFLAGS" >>$@ - echo "# define C_INSTALL_LDFLAGS \"$(LINKER_OPTIONS) $(LINKER_OPTIMIZATION_OPTIONS)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_PREFIX" >>$@ - echo "# define C_INSTALL_PREFIX \"$(PREFIX)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_SHARE_HOME" >>$@ - echo "# define C_INSTALL_SHARE_HOME \"$(DATADIR)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_BIN_HOME" >>$@ - echo "# define C_INSTALL_BIN_HOME \"$(BINDIR)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_EGG_HOME" >>$@ - echo "# define C_INSTALL_EGG_HOME \"$(EGGDIR)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_LIB_HOME" >>$@ - echo "# define C_INSTALL_LIB_HOME \"$(LIBDIR)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_LIB_NAME" >>$@ - echo "# define C_INSTALL_LIB_NAME \"$(INSTALL_LIB_NAME)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_STATIC_LIB_HOME" >>$@ - echo "# define C_INSTALL_STATIC_LIB_HOME \"$(LIBDIR)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_INCLUDE_HOME" >>$@ - echo "# define C_INSTALL_INCLUDE_HOME \"$(INCDIR)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_MORE_LIBS" >>$@ - echo "# define C_INSTALL_MORE_LIBS \"$(LIBRARIES)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_INSTALL_MORE_STATIC_LIBS" >>$@ - echo "# define C_INSTALL_MORE_STATIC_LIBS \"$(LIBRARIES)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_DEFAULT_TARGET_HEAP_SIZE" >>$@ - echo "# define C_DEFAULT_TARGET_HEAP_SIZE 0" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_STACK_GROWS_DOWNWARD" >>$@ - echo "# define C_STACK_GROWS_DOWNWARD $(STACKDIRECTION)" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_MORE_LIBS" >>$@ - echo "# define C_TARGET_MORE_LIBS \"$(TARGET_LIBRARIES)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_MORE_STATIC_LIBS" >>$@ - echo "# define C_TARGET_MORE_STATIC_LIBS \"$(TARGET_LIBRARIES)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_CC" >>$@ - echo "# define C_TARGET_CC \"$(TARGET_C_COMPILER)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_CXX" >>$@ - echo "# define C_TARGET_CXX \"$(TARGET_CXX_COMPILER)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_RC_COMPILER" >>$@ - echo "# define C_TARGET_RC_COMPILER \"$(TARGET_RC_COMPILER)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_CFLAGS" >>$@ - echo "# define C_TARGET_CFLAGS \"$(TARGET_C_COMPILER_OPTIONS) $(TARGET_C_COMPILER_OPTIMIZATION_OPTIONS)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_LDFLAGS" >>$@ - echo "# define C_TARGET_LDFLAGS \"$(TARGET_LINKER_OPTIONS) $(TARGET_LINKER_OPTIMIZATION_OPTIONS)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_FEATURES" >>$@ - echo "# define C_TARGET_FEATURES \"$(TARGET_FEATURES)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_CROSS_CHICKEN" >>$@ - echo "# define C_CROSS_CHICKEN $(CROSS_CHICKEN)" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_PREFIX" >>$@ - echo "# define C_TARGET_PREFIX \"$(TARGET_PREFIX)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_BIN_HOME" >>$@ - echo "# define C_TARGET_BIN_HOME \"$(TARGET_PREFIX)/bin\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_LIB_HOME" >>$@ - echo "# define C_TARGET_LIB_HOME \"$(TARGET_PREFIX)/lib\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_LIB_NAME" >>$@ - echo "# define C_TARGET_LIB_NAME \"$(TARGET_LIB_NAME)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_RUN_LIB_HOME" >>$@ + $(call echo, >>, $@,#define DEBUGBUILD 1) +endif + $(call echo, >>, $@,#define C_CHICKEN_PROGRAM "$(CHICKEN_PROGRAM)$(EXE)") + $(call echo, >>, $@,#ifndef C_INSTALL_CC) + $(call echo, >>, $@,# define C_INSTALL_CC "$(C_COMPILER)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_CXX) + $(call echo, >>, $@,# define C_INSTALL_CXX "$(CXX_COMPILER)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_POSTINSTALL_PROGRAM) + $(call echo, >>, $@,# define C_INSTALL_POSTINSTALL_PROGRAM "$(POSTINSTALL_PROGRAM)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_RC_COMPILER) + $(call echo, >>, $@,# define C_INSTALL_RC_COMPILER "$(RC_COMPILER)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_CFLAGS) + $(call echo, >>, $@,# define C_INSTALL_CFLAGS "$(C_COMPILER_OPTIONS) $(C_COMPILER_OPTIMIZATION_OPTIONS)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_LDFLAGS) + $(call echo, >>, $@,# define C_INSTALL_LDFLAGS "$(LINKER_OPTIONS) $(LINKER_OPTIMIZATION_OPTIONS)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_PREFIX) + $(call echo, >>, $@,# define C_INSTALL_PREFIX "$(PREFIX)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_SHARE_HOME) + $(call echo, >>, $@,# define C_INSTALL_SHARE_HOME "$(DATADIR)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_BIN_HOME) + $(call echo, >>, $@,# define C_INSTALL_BIN_HOME "$(BINDIR)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_EGG_HOME) + $(call echo, >>, $@,# define C_INSTALL_EGG_HOME "$(EGGDIR)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_LIB_HOME) + $(call echo, >>, $@,# define C_INSTALL_LIB_HOME "$(LIBDIR)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_LIB_NAME) + $(call echo, >>, $@,# define C_INSTALL_LIB_NAME "$(INSTALL_LIB_NAME)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_STATIC_LIB_HOME) + $(call echo, >>, $@,# define C_INSTALL_STATIC_LIB_HOME "$(LIBDIR)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_INCLUDE_HOME) + $(call echo, >>, $@,# define C_INSTALL_INCLUDE_HOME "$(INCDIR)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_MORE_LIBS) + $(call echo, >>, $@,# define C_INSTALL_MORE_LIBS "$(LIBRARIES)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_INSTALL_MORE_STATIC_LIBS) + $(call echo, >>, $@,# define C_INSTALL_MORE_STATIC_LIBS "$(LIBRARIES)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_DEFAULT_TARGET_HEAP_SIZE) + $(call echo, >>, $@,# define C_DEFAULT_TARGET_HEAP_SIZE 0) + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_STACK_GROWS_DOWNWARD) + $(call echo, >>, $@,# define C_STACK_GROWS_DOWNWARD $(STACKDIRECTION)) + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_MORE_LIBS) + $(call echo, >>, $@,# define C_TARGET_MORE_LIBS "$(TARGET_LIBRARIES)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_MORE_STATIC_LIBS) + $(call echo, >>, $@,# define C_TARGET_MORE_STATIC_LIBS "$(TARGET_LIBRARIES)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_CC) + $(call echo, >>, $@,# define C_TARGET_CC "$(TARGET_C_COMPILER)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_CXX) + $(call echo, >>, $@,# define C_TARGET_CXX "$(TARGET_CXX_COMPILER)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_RC_COMPILER) + $(call echo, >>, $@,# define C_TARGET_RC_COMPILER "$(TARGET_RC_COMPILER)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_CFLAGS) + $(call echo, >>, $@,# define C_TARGET_CFLAGS "$(TARGET_C_COMPILER_OPTIONS) $(TARGET_C_COMPILER_OPTIMIZATION_OPTIONS)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_LDFLAGS) + $(call echo, >>, $@,# define C_TARGET_LDFLAGS "$(TARGET_LINKER_OPTIONS) $(TARGET_LINKER_OPTIMIZATION_OPTIONS)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_FEATURES) + $(call echo, >>, $@,# define C_TARGET_FEATURES "$(TARGET_FEATURES)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_CROSS_CHICKEN) + $(call echo, >>, $@,# define C_CROSS_CHICKEN $(CROSS_CHICKEN)) + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_PREFIX) + $(call echo, >>, $@,# define C_TARGET_PREFIX "$(TARGET_PREFIX)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_BIN_HOME) + $(call echo, >>, $@,# define C_TARGET_BIN_HOME "$(TARGET_PREFIX)/bin") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_LIB_HOME) + $(call echo, >>, $@,# define C_TARGET_LIB_HOME "$(TARGET_PREFIX)/lib") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_LIB_NAME) + $(call echo, >>, $@,# define C_TARGET_LIB_NAME "$(TARGET_LIB_NAME)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_RUN_LIB_HOME) ifdef DLLSINPATH - echo "# define C_TARGET_RUN_LIB_HOME \"$(TARGET_RUN_PREFIX)/bin\"" >>$@ + $(call echo, >>, $@,# define C_TARGET_RUN_LIB_HOME "$(TARGET_RUN_PREFIX)/bin") else - echo "# define C_TARGET_RUN_LIB_HOME \"$(TARGET_RUN_PREFIX)/lib\"" >>$@ -endif - echo "#endif" >>$@ - echo "#ifndef C_TARGET_SHARE_HOME" >>$@ - echo "# define C_TARGET_SHARE_HOME \"$(TARGET_PREFIX)/share\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_INCLUDE_HOME" >>$@ - echo "# define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/include/chicken\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_TARGET_STATIC_LIB_HOME" >>$@ - echo "# define C_TARGET_STATIC_LIB_HOME \"$(TARGET_PREFIX)/lib\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_CHICKEN_PROGRAM" >>$@ - echo "# define C_CHICKEN_PROGRAM \"$(CHICKEN_PROGRAM)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_CSC_PROGRAM" >>$@ - echo "# define C_CSC_PROGRAM \"$(CSC_PROGRAM)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_CSI_PROGRAM" >>$@ - echo "# define C_CSI_PROGRAM \"$(CSI_PROGRAM)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_CHICKEN_BUG_PROGRAM" >>$@ - echo "# define C_CHICKEN_BUG_PROGRAM \"$(CHICKEN_BUG_PROGRAM)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_CHICKEN_INSTALL_PROGRAM" >>$@ - echo "# define C_CHICKEN_INSTALL_PROGRAM \"$(CHICKEN_INSTALL_PROGRAM)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_CHICKEN_UNINSTALL_PROGRAM" >>$@ - echo "# define C_CHICKEN_UNINSTALL_PROGRAM \"$(CHICKEN_UNINSTALL_PROGRAM)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_CHICKEN_STATUS_PROGRAM" >>$@ - echo "# define C_CHICKEN_STATUS_PROGRAM \"$(CHICKEN_STATUS_PROGRAM)\"" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_WINDOWS_SHELL" >>$@ + $(call echo, >>, $@,# define C_TARGET_RUN_LIB_HOME "$(TARGET_RUN_PREFIX)/lib") +endif + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_SHARE_HOME) + $(call echo, >>, $@,# define C_TARGET_SHARE_HOME "$(TARGET_PREFIX)/share") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_INCLUDE_HOME) + $(call echo, >>, $@,# define C_TARGET_INCLUDE_HOME "$(TARGET_PREFIX)/include/chicken") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_TARGET_STATIC_LIB_HOME) + $(call echo, >>, $@,# define C_TARGET_STATIC_LIB_HOME "$(TARGET_PREFIX)/lib") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_CHICKEN_PROGRAM) + $(call echo, >>, $@,# define C_CHICKEN_PROGRAM "$(CHICKEN_PROGRAM)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_CSC_PROGRAM) + $(call echo, >>, $@,# define C_CSC_PROGRAM "$(CSC_PROGRAM)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_CSI_PROGRAM) + $(call echo, >>, $@,# define C_CSI_PROGRAM "$(CSI_PROGRAM)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_CHICKEN_BUG_PROGRAM) + $(call echo, >>, $@,# define C_CHICKEN_BUG_PROGRAM "$(CHICKEN_BUG_PROGRAM)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_CHICKEN_INSTALL_PROGRAM) + $(call echo, >>, $@,# define C_CHICKEN_INSTALL_PROGRAM "$(CHICKEN_INSTALL_PROGRAM)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_CHICKEN_UNINSTALL_PROGRAM) + $(call echo, >>, $@,# define C_CHICKEN_UNINSTALL_PROGRAM "$(CHICKEN_UNINSTALL_PROGRAM)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_CHICKEN_STATUS_PROGRAM) + $(call echo, >>, $@,# define C_CHICKEN_STATUS_PROGRAM "$(CHICKEN_STATUS_PROGRAM)") + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_WINDOWS_SHELL) ifdef WINDOWS_SHELL - echo "# define C_WINDOWS_SHELL 1" >>$@ + $(call echo, >>, $@,# define C_WINDOWS_SHELL 1) else - echo "# define C_WINDOWS_SHELL 0" >>$@ + $(call echo, >>, $@,# define C_WINDOWS_SHELL 0) endif - echo "#endif" >>$@ - echo "#ifndef C_BINARY_VERSION" >>$@ - echo "# define C_BINARY_VERSION $(BINARYVERSION)" >>$@ - echo "#endif" >>$@ - echo "#ifndef C_USES_SONAME" >>$@ + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_BINARY_VERSION) + $(call echo, >>, $@,# define C_BINARY_VERSION $(BINARYVERSION)) + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,#ifndef C_USES_SONAME) ifdef USES_SONAME - echo "# define C_USES_SONAME 1" >>$@ + $(call echo, >>, $@,# define C_USES_SONAME 1) else - echo "# define C_USES_SONAME 0" >>$@ + $(call echo, >>, $@,# define C_USES_SONAME 0) endif - echo "#endif" >>$@ - echo "/* END OF FILE */" >>$@ -endif -# IMPORTANT: Did you read the note at the start of this Make rule? + $(call echo, >>, $@,#endif) + $(call echo, >>, $@,/* END OF FILE */) -ifndef CUSTOM_RC_FILE chicken-install.rc: - echo '/* GENERATED */' >$@ - echo '1 24 MOVEABLE PURE' >>$@ - echo 'BEGIN' >>$@ - echo ' "\r\n"' >>$@ - echo ' "\r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' "\r\n"' >>$@ - echo 'END' >>$@ - echo '/* END OF FILE */' >>$@ + $(call echo, >, $@,/* GENERATED */) + $(call echo, >>, $@,1 24 MOVEABLE PURE) + $(call echo, >>, $@,BEGIN) + $(call echo, >>, $@, "\r\n") + $(call echo, >>, $@, "\r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, "\r\n") + $(call echo, >>, $@,END) + $(call echo, >>, $@,/* END OF FILE */) chicken-uninstall.rc: - echo '/* GENERATED */' >$@ - echo '1 24 MOVEABLE PURE' >>$@ - echo 'BEGIN' >>$@ - echo ' "\r\n"' >>$@ - echo ' "\r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' " \r\n"' >>$@ - echo ' "\r\n"' >>$@ - echo 'END' >>$@ - echo '/* END OF FILE */' >>$@ -endif + $(call echo, >, $@,/* GENERATED */) + $(call echo, >>, $@,1 24 MOVEABLE PURE) + $(call echo, >>, $@,BEGIN) + $(call echo, >>, $@, "\r\n") + $(call echo, >>, $@, "\r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, " \r\n") + $(call echo, >>, $@, "\r\n") + $(call echo, >>, $@,END) + $(call echo, >>, $@,/* END OF FILE */) -- 1.7.10.4