# # 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 Library 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 Library General Public # License along with this library; see the file COPYING.LIB. # If not, write to the Free Software Foundation, # 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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:: # Things to do before installing # before-install:: # Things to do after installing # # Unfortunately the way the header files are placed in relationship # to the source we must install the GNU header manually # Ayers 2003-07-31: This statement should be reevaluated! after-install:: for file in $(GNU_HEADERS); do \ $(INSTALL_DATA) ../Headers/Additions/GNUstepBase/$$file \ $(GNUSTEP_HEADERS)/GNUstepBase/$$file ; \ done for file in $(UNICODE_HEADERS); do \ $(INSTALL_DATA) ../Headers/Additions/GNUstepBase/$$file \ $(GNUSTEP_HEADERS)/GNUstepBase/$$file ; \ done $(INSTALL_DATA) $(GNUSTEP_TARGET_DIR)/GSConfig.h \ $(GNUSTEP_HEADERS)/$(GNUSTEP_TARGET_DIR) if [ "$(INSTALL_ROOT_DIR)" = "" ]; 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 # before-uninstall:: # Things to do after uninstalling after-uninstall:: for file in $(GNU_HEADERS); do \ rm -f $(GNUSTEP_HEADERS)/GNUstepBase/$$file ; \ done for file in $(UNICODE_HEADERS); do \ rm -f $(GNUSTEP_HEADERS)/GNUstepBase/$$file ; \ done rm -f $(GNUSTEP_HEADERS)/$(GNUSTEP_TARGET_DIR)/GSConfig.h # Things to do before cleaning # before-clean:: # Things to do after cleaning # after-clean:: # Things to do before distcleaning # before-distclean:: # Things to do after distcleaning after-distclean:: rm -f mframe/mframe.h Foundation \ NSNumber[0-9]*.m GSValue[0-9]*.m rm -rf $(GNUSTEP_TARGET_DIR)/config.h rm -rf $(GNUSTEP_TARGET_DIR)/mframe.h rm -rf $(GNUSTEP_TARGET_DIR)/GSConfig.h rm -rf $(GNUSTEP_TARGET_CPU) # Things to do before checking # before-check:: # Things to do after checking # after-check:: # Creation of NSValue and NSNumber concrete classes from templates $(NSVALUE_MFILES) : GSTemplateValue.m rm -f $@ echo '#define TYPE_ORDER' `echo $@ | sed -e "s,[^0-9],,g"` >$@ cat $(srcdir)/GSTemplateValue.m >> $@ $(NSNUMBER_MFILES) : NSConcreteNumber.m rm -f $@ echo '#define TYPE_ORDER' `echo $@ | sed -e "s,[^0-9],,g"` >$@ cat $(srcdir)/NSConcreteNumber.m >> $@ $(GNUSTEP_OBJ_DIR)/objc-load${OEXT}: dynamic-load.h dynamic-load.h: ../config.status rm -f dynamic-load.h cp $(srcdir)/$(DYNAMIC_LINKER)-load.h dynamic-load.h $(GNUSTEP_OBJ_DIR)/preface${OEXT}: $(HEADER_DIR_BASE)/preface.h # # The config.h file is specific to a target # $(GNUSTEP_TARGET_DIR)/config.h: ../config.status $(MKDIRS) $(GNUSTEP_TARGET_DIR) -mv $(HEADER_DIR_BASE)/config.h $(GNUSTEP_TARGET_DIR) -touch $(GNUSTEP_TARGET_DIR)/config.h $(GNUSTEP_TARGET_DIR)/GSConfig.h: ../config.status $(MKDIRS) $(GNUSTEP_TARGET_DIR) -mv $(HEADER_DIR_BASE)/GSConfig.h $(GNUSTEP_TARGET_DIR) -touch $(GNUSTEP_TARGET_DIR)/GSConfig.h $(GNUSTEP_TARGET_DIR)/mframe.h: mframe/config.status $(MKDIRS) $(GNUSTEP_TARGET_DIR) -mv mframe/mframe.h $(GNUSTEP_TARGET_DIR) -touch $(GNUSTEP_TARGET_DIR)/mframe.h # # Files that include mframe.h will need a rebuild if it is changed. # $(GNUSTEP_OBJ_DIR)/mframe.o \ $(GNUSTEP_OBJ_DIR)/NSConnection.o \ $(GNUSTEP_OBJ_DIR)/NSInvocation.o \ $(GNUSTEP_OBJ_DIR)/NSMethodSignature.o \ $(GNUSTEP_OBJ_DIR)/NSObjCRuntime.o \ : $(GNUSTEP_TARGET_DIR)/mframe.h # # Files where optimisation breaks the code! # These have to filter the optimisation flag out. # [You need gnustep-make >= 1.2.0 to compile this code] mframe.m_FILE_FILTER_OUT_FLAGS = -O% NSConnection.m_FILE_FILTER_OUT_FLAGS = -O% NSInvocation.m_FILE_FILTER_OUT_FLAGS = -O% # # Files that need a rebuild if config.h is changed. # XML support # $(GNUSTEP_OBJ_DIR)/GSXML.o \ $(GNUSTEP_OBJ_DIR)/GSFileHandle.o \ : $(GNUSTEP_TARGET_DIR)/config.h # # Files that need a rebuild if GSConfig.h is changed. # $(GNUSTEP_OBJ_DIR)/mframe.o \ $(GNUSTEP_OBJ_DIR)/NSArchiver.o \ $(GNUSTEP_OBJ_DIR)/NSConnection.o \ $(GNUSTEP_OBJ_DIR)/NSData.o \ $(GNUSTEP_OBJ_DIR)/NSDecimal.o \ $(GNUSTEP_OBJ_DIR)/NSInvocation.o \ $(GNUSTEP_OBJ_DIR)/NSMethodSignature.o \ $(GNUSTEP_OBJ_DIR)/NSProcessInfo.o \ $(GNUSTEP_OBJ_DIR)/NSUnarchiver.o \ : $(GNUSTEP_TARGET_DIR)/GSConfig.h # # Files that include GSIArray.h will need a rebuild if it is changed. # $(GNUSTEP_OBJ_DIR)/NSFileManager.o \ $(GNUSTEP_OBJ_DIR)/NSNotificationCenter.o \ $(GNUSTEP_OBJ_DIR)/NSPortCoder.o \ $(GNUSTEP_OBJ_DIR)/NSRunLoop.o \ $(GNUSTEP_OBJ_DIR)/NSSerializer.o \ $(GNUSTEP_OBJ_DIR)/NSUnarchiver.o \ : $(HEADER_DIR_BASE)/GSIArray.h $(HEADER_DIR_BASE)/GSUnion.h # # Files that include GSIMap.h will need a rebuild if it is changed. # $(GNUSTEP_OBJ_DIR)/GSAttributedString.o \ $(GNUSTEP_OBJ_DIR)/GSCountedSet.o \ $(GNUSTEP_OBJ_DIR)/GSDictionary.o \ $(GNUSTEP_OBJ_DIR)/GSFFCallInvocation.o \ $(GNUSTEP_OBJ_DIR)/GSSet.o \ $(GNUSTEP_OBJ_DIR)/NSArchiver.o \ $(GNUSTEP_OBJ_DIR)/NSConnection.o \ $(GNUSTEP_OBJ_DIR)/NSHashTable.o \ $(GNUSTEP_OBJ_DIR)/NSMapTable.o \ $(GNUSTEP_OBJ_DIR)/NSNotificationCenter.o \ $(GNUSTEP_OBJ_DIR)/NSObject.o \ $(GNUSTEP_OBJ_DIR)/NSPortCoder.o \ $(GNUSTEP_OBJ_DIR)/NSSerializer.o \ : $(HEADER_DIR_BASE)/GSIMap.h $(HEADER_DIR_BASE)/GSUnion.h # # Files that include NSObjCRuntime.h will need a rebuild if it is changed. # $(GNUSTEP_OBJ_DIR)/GSString.o \ $(GNUSTEP_OBJ_DIR)/NSArchiver.o \ $(GNUSTEP_OBJ_DIR)/NSArray.o \ $(GNUSTEP_OBJ_DIR)/NSData.o \ $(GNUSTEP_OBJ_DIR)/NSGDictionary.o \ $(GNUSTEP_OBJ_DIR)/NSInvocation.o \ $(GNUSTEP_OBJ_DIR)/NSObjCRuntime.o \ $(GNUSTEP_OBJ_DIR)/NSObject.o \ $(GNUSTEP_OBJ_DIR)/NSSerializer.o \ $(GNUSTEP_OBJ_DIR)/NSString.o \ $(GNUSTEP_OBJ_DIR)/NSUnarchiver.o \ : $(HEADER_DIR_FND)/NSObjCRuntime.h # # Files that include GSeq.h will need a rebuild if it is changed. # $(GNUSTEP_OBJ_DIR)/NSString.o \ $(GNUSTEP_OBJ_DIR)/GSString.o \ : GSeq.h # # NSGeometry.m needs a recompile if NSGeometry.h is changed. # $(GNUSTEP_OBJ_DIR)/NSGeometry.o \ : $(HEADER_DIR_FND)/NSGeometry.h # # Make list of class names for DLL exports. I'm not sure how to make this # work with the correct dependencies, so for now it should be regenerated # by hand when new classes get added. Then mv libgnustep-base.def.new to # libgnustep-base.def.in # libgnustep-base.def.new: $(GNUSTEP_OBJ_DIR)/*o Additions/$(GNUSTEP_OBJ_DIR)/*o rm -f $@ rm -f _tmp.def cat win32-def.top > $@ nm $^ | grep '^........ [T] _' | sed 's/[^_]*_//' > _tmp.def cat _tmp.def | grep "_class_name_" >> $@ rm -rf _tmp.def # # Build the .def file depending on the objc runtime in use. # ifeq ($(NX_CONST_STRING_CLASS),NXConstantString) libgnustep-base.def: libgnustep-base.def.in sed -e 's/NSConstantString/NXConstantString/' < $< > $@ endif ifeq ($(NX_CONST_STRING_CLASS),NSConstantString) libgnustep-base.def: libgnustep-base.def.in sed -e 's/NXConstantString/NSConstantString/' < $< > $@ endif TAGS: $(DIST_FILES) etags $(DIST_FILES) regenerate: $(DIST_FILES) mv AUTHORS .. FORCE: