# # 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, # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 # # 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 $(MKDIRS) $(GNUSTEP_HEADERS)/$(GNUSTEP_TARGET_DIR)/GNUstepBase $(INSTALL_DATA) $(GNUSTEP_TARGET_DIR)/GNUstepBase/GSConfig.h \ $(GNUSTEP_HEADERS)/$(GNUSTEP_TARGET_DIR)/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 # before-uninstall:: # Things to do after uninstalling before-uninstall:: for file in $(GNU_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 # 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)/GNUstepBase rm -rf $(GNUSTEP_TARGET_DIR)/mframe.h rm -rf $(GNUSTEP_TARGET_DIR)/mframe.h rm -rf $(GNUSTEP_TARGET_CPU) # Things to do before checking # before-check:: # Things to do after checking # after-check:: $(GNUSTEP_OBJ_DIR)/objc-load${OEXT}: dynamic-load.h dynamic-load.h: ../config.status rm -f dynamic-load.h cp $(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)/GNUstepBase/GSConfig.h: ../config.status $(MKDIRS) $(GNUSTEP_TARGET_DIR)/GNUstepBase -mv $(HEADER_DIR_BASE)/GSConfig.h $(GNUSTEP_TARGET_DIR)/GNUstepBase -touch $(GNUSTEP_TARGET_DIR)/GNUstepBase/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 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% # # 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)