# -*-makefile-gmake-*- # Makefile.postamble # # Copyright (C) 1997 Free Software Foundation, Inc. # # Author: Scott Christley # # This file is part of the GNUstep Base Library. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # If you are interested in a warranty or support for this source code, # contact Scott Christley at scottc@net-community.com # # You should have received a copy of the GNU Lesser General Public # License along with this library; see the file COPYING.LIB. # If not, write to the Free Software Foundation, # 31 Milk Street #960789 Boston, MA 02196 USA. # # Makefile.postamble # # Project specific makefile rules # # Uncomment the targets you want. # The double colons (::) are important, do not make them single colons # otherwise the normal makefile rules will not be performed. # # Things to do before compiling before-all:: $(GENERATED_HFILES) # Things to do after compiling after-all:: Info-gnustep.plist # Things to do before installing #before-install:: # Things to do after installing # ifeq ($(OBJC2RUNTIME),0) after-install:: $(MKDIRS) $(GNUSTEP_HEADERS)/ObjectiveC2 $(MKDIRS) $(GNUSTEP_HEADERS)/ObjectiveC2/objc for file in $(OBJECTIVEC2_HEADERS); do \ $(INSTALL_DATA) ../Headers/ObjectiveC2/objc/$$file \ $(GNUSTEP_HEADERS)/ObjectiveC2/objc/$$file ; \ done endif after-install:: ifneq ($(base),no) $(MKDIRS) $(GNUSTEP_HEADERS)/CoreFoundation for file in $(COREFOUNDATION_HEADERS); do \ $(INSTALL_DATA) ../Headers/CoreFoundation/$$file \ $(GNUSTEP_HEADERS)/CoreFoundation/$$file ; \ done endif $(MKDIRS) $(GNUSTEP_HEADERS)/GNUstepBase for file in $(GNUSTEPBASE_HEADERS); do \ $(INSTALL_DATA) ../Headers/GNUstepBase/$$file \ $(GNUSTEP_HEADERS)/GNUstepBase/$$file ; \ done $(INSTALL_DATA) $(GNUSTEP_TARGET_DIR)/GNUstepBase/GSConfig.h \ $(GNUSTEP_HEADERS)/GNUstepBase/GSConfig.h if [ "$(DESTDIR)" = "" ]; then \ services=/etc/services; \ if [ "`$(WHOAMI)`" != root ]; then \ echo "WARNING: Please add the following lines to $$services"; \ echo "gdomap 538/tcp # GNUstep distrib objects"; \ echo "gdomap 538/udp # GNUstep distrib objects"; \ else \ if [ "`fgrep gdomap $$services 2>/dev/null`" = "" ]; then \ echo "GNUstep addons for /etc/services written to $$services"; \ set -x; \ echo "gdomap 538/tcp # GNUstep distrib objects" >> $$services; \ echo "gdomap 538/udp # GNUstep distrib objects" >> $$services; \ fi; \ fi; \ fi # Things to do before uninstalling ifeq ($(OBJC2RUNTIME),0) before-uninstall:: for file in $(OBJECTIVEC2_HEADERS); do \ rm -f $(GNUSTEP_HEADERS)/ObjectiveC2/objc/$$file ; \ done endif before-uninstall:: for file in $(GNUSTEPBASE_HEADERS); do \ rm -f $(GNUSTEP_HEADERS)/GNUstepBase/$$file ; \ done rm -f $(GNUSTEP_HEADERS)/$(GNUSTEP_TARGET_DIR)/GNUstepBase/GSConfig.h # Things to do before cleaning # before-clean:: # Things to do after cleaning after-clean:: rm -f libgnustep-base.def Info-gnustep.plist # Things to do before distcleaning # before-distclean:: # Things to do after distcleaning after-distclean:: rm -f $(GNUSTEP_TARGET_DIR)/config.h rm -f $(GNUSTEP_TARGET_DIR)/GNUstepBase/GSConfig.h # rm -rf $(GNUSTEP_TARGET_DIR) # Things to do before checking # before-check:: # Things to do after checking # after-check:: dynamic-load.h: ../config.status rm -f dynamic-load.h cp $(DYNAMIC_LINKER)-load.h dynamic-load.h # # The following header files are specific to a target, so to enable multiple # builds in the same directory, we copy them to a target-specific subdirectory # which will be found by the compiler first when compiling for that target # $(GNUSTEP_TARGET_DIR)/config.h: ../config.status $(MKDIRS) $(GNUSTEP_TARGET_DIR) -cp $(HEADER_DIR_BASE)/config.h $(GNUSTEP_TARGET_DIR) -touch $(GNUSTEP_TARGET_DIR)/config.h $(GNUSTEP_TARGET_DIR)/GNUstepBase/GSConfig.h: ../config.status $(MKDIRS) $(GNUSTEP_TARGET_DIR)/GNUstepBase -cp $(HEADER_DIR_BASE)/GSConfig.h $(GNUSTEP_TARGET_DIR)/GNUstepBase -touch $(GNUSTEP_TARGET_DIR)/GNUstepBase/GSConfig.h # # Files where optimisation breaks the code! # These have to filter the optimisation flag out. # libgnustep-base-entry.m_FILE_FILTER_OUT_FLAGS = -O% # gcc 4.4 on mingw # # Make list of class names for DLL exports. Uses the actual classes from # the .o files, so it should really have everything needed. # libgnustep-base.def: $(OBJ_FILES_TO_LINK) rm -f $@ rm -f _tmp.def cat win32-def.top > $@ nm $^ | grep '^........ [TR] _' | sed 's/[^_]*_//' > _tmp.def cat _tmp.def | grep "_class_name_" >> $@ rm -rf _tmp.def # # Make an Info.plist since libraries don't have these normally # Info-gnustep.plist: ../Version $(ECHO_CREATING)(echo "{"; \ echo " NSExecutable = \"gnustep-base\";"; \ echo " NSPrincipalClass = \"NSObject\";"; \ echo " GSBundleShortVersionString = \"$(VERSION)\";"; \ echo " GSBundleVersion = $(VERSION_NUMBER);"; \ echo " CFBundleShortVersionString = \"$(VERSION)\";"; \ echo " CFBundleVersion = $(VERSION_NUMBER);"; \ echo "}") > $@$(END_ECHO)