#Makefile for GNU Objective C runtime library.#Copyright (C) 1993, 95-97, 1998 Free Software Foundation, Inc.#This file is part of GNU CC.#GNU CC is free software; you can redistribute it and/or modify#it under the terms of the GNU General Public License as published by#the Free Software Foundation; either version 2, or (at your option)#any later version.#GNU CC 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 General Public License for more details.#You should have received a copy of the GNU General Public License#along with GNU CC; see the file COPYING. If not, write to#the Free Software Foundation, 59 Temple Place - Suite 330,#Boston, MA 02111-1307, USA. */#This was cribbed from the libchill, libiberty and libstdc++#Makefile.in files. Some of this stuff may be unnecessary and#worthless.SHELL = /bin/sh#### Start of system configuration section. ####srcdir = @srcdir@VPATH = @srcdir@prefix = @prefix@exec_prefix = @exec_prefix@target_alias = @target_alias@gcc_version = @gcc_version@gcc_version_trigger = @gcc_version_trigger@libdir = $(exec_prefix)/liblibsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)incinstalldir = $(libsubdir)/include# Multilib support variables.MULTISRCTOP =MULTIBUILDTOP =MULTIDIRS =MULTISUBDIR =MULTIDO = trueMULTICLEAN = true# Not configured per top-level version, since that doesn't get passed# down at configure time, but overrridden by the top-level install# target.INSTALL = @INSTALL@INSTALL_PROGRAM = @INSTALL_PROGRAM@INSTALL_DATA = @INSTALL_DATA@AR = @AR@AR_FLAGS = rcRANLIB = @RANLIB@CC = @CC@CFLAGS = @CFLAGS@ALL_CFLAGS = -I. -I$(srcdir) $(CPPFLAGS) $(DEFS) $(CFLAGS) -DIN_GCC## Define the cc1obj in terms of the CC that is passed on from higher# level make. This is needed to make sure we can create runtime-info.h# when doing canadian cross builds where running ../../gcc/cc1obj# does not make any sense.#CC1OBJ = `$(CC) -print-prog-name=cc1obj`INCLUDES = -I$(srcdir)/objc -I$(srcdir)/$(MULTISRCTOP)../gcc \-I$(srcdir)/$(MULTISRCTOP)../gcc/config -I$(MULTIBUILDTOP)../../gcc \-I$(srcdir)/$(MULTISRCTOP)../includeOBJC_GCFLAGS=-DOBJC_WITH_GC=1OBJC_THREAD_FILE=thr-@OBJC_THREAD_FILE@.SUFFIXES:.SUFFIXES: .c .m .o.c.o:$(CC) -c $(ALL_CFLAGS) $(INCLUDES) $<.m.o:$(CC) -c $(ALL_CFLAGS) $(INCLUDES) $<# Flags to pass to a recursive make.FLAGS_TO_PASS = \"AR=$(AR)" \"AR_FLAGS=$(AR_FLAGS)" \"CC=$(CC)" \"CFLAGS=$(CFLAGS)" \"LIBCFLAGS=$(LIBCFLAGS)" \"EXTRA_OFILES=$(EXTRA_OFILES)" \"HDEFINES=$(HDEFINES)" \"INSTALL=$(INSTALL)" \"INSTALL_DATA=$(INSTALL_DATA)" \"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \"LDFLAGS=$(LDFLAGS)" \"LOADLIBES=$(LOADLIBES)" \"PICFLAG=$(PICFLAG)" \"RANLIB=$(RANLIB)" \"SHELL=$(SHELL)" \"prefix=$(prefix)" \"exec_prefix=$(exec_prefix)" \"libdir=$(libdir)" \"libsubdir=$(libsubdir)" \"tooldir=$(tooldir)"all: libobjc.a @OBJC_BOEHM_GC@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all# User-visible header files.OBJC_H = hash.h objc-list.h sarray.h objc.h objc-api.h \NXConstStr.h Object.h Protocol.h encoding.h typedstream.h \thr.h# Modules that comprise the runtime library.OBJS = archive.o class.o encoding.o gc.o hash.o init.o linking.o \misc.o nil_method.o NXConstStr.o Object.o objects.o \Protocol.o sarray.o selector.o sendmsg.o thr.o \$(OBJC_THREAD_FILE).oOBJS_GC = archive_gc.o class_gc.o encoding_gc.o gc_gc.o hash_gc.o \init_gc.o linking_gc.o misc_gc.o nil_method_gc.o \NXConstStr_gc.o Object_gc.o objects_gc.o Protocol_gc.o \sarray_gc.o selector_gc.o sendmsg_gc.o thr_gc.o \$(OBJC_THREAD_FILE)_gc.oruntime-info.h:echo "" > tmp-runtimeecho "/* This file is automatically generated */" > $@$(CC1OBJ) -print-objc-runtime-info tmp-runtime >> $@rm -f tmp-runtimearchive_gc.o: archive.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<class_gc.o: class.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<encoding_gc.o: encoding.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<gc.o: gc.c$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(INCLUDES) $<gc_gc.o: gc.c$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \$(INCLUDES) $<hash_gc.o: hash.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<init_gc.o: init.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<linking.o: linking.m$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(INCLUDES) $<linking_gc.o: linking.m$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \$(INCLUDES) $<misc_gc.o: misc.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<nil_method_gc.o: nil_method.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<NXConstStr.o: NXConstStr.m$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(INCLUDES) $<NXConstStr_gc.o: NXConstStr.m$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \$(INCLUDES) $<Object.o: Object.m$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(INCLUDES) $<Object_gc.o: Object.m$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \$(INCLUDES) $<objects_gc.o: objects.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<Protocol.o: Protocol.m$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(INCLUDES) $<Protocol_gc.o: Protocol.m$(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \$(INCLUDES) $<sarray_gc.o: sarray.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<selector_gc.o: selector.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<sendmsg.o: sendmsg.c runtime-info.h$(CC) -c -o $@ $(ALL_CFLAGS) $(INCLUDES) $<sendmsg_gc.o: sendmsg.c runtime-info.h$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<thr_gc.o: thr.c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<$(OBJC_THREAD_FILE)_gc.o: $(OBJC_THREAD_FILE).c$(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) $(INCLUDES) $<doc: info dvi htmllibobjc.a: $(OBJS)$(AR) $(AR_FLAGS) $@ $(OBJS)$(RANLIB) $@libobjc_gc.a: $(OBJS_GC)$(AR) $(AR_FLAGS) $@ $(OBJS_GC)$(RANLIB) $@libobjc_s.a: libobjc.amv libobjc.a libobjc_s.a# Create a relocatable DLLlibobjc.dll: libobjc_s.a libobjc_entry.o$(CC) -mdll -Wl,--base-file -Wl,libobjc.base \-o libobjc.dll libobjc_s.a libobjc_entry.o -lkernel32$(DLLTOOL) --dllname libobjc.dll --def $(srcdir)/libobjc.def \--base-file libobjc.base --output-exp libobjc.exp$(GCC_FOR_TARGET) -mdll -Wl,--base-file libobjc.base libobjc.exp \-o libobjc.dll libobjc_s.a libobjc_entry.o -lkernel32$(DLLTOOL) --dllname libobjc.dll --def $(srcdir)/libobjc.def \--base-file libobjc.base --output-exp libobjc.exp$(GCC_FOR_TARGET) libobjc.exp -mdll \-o libobjc.dll libobjc_s.a libobjc_entry.o -lkernel32$(DLLTOOL) --dllname libobjc.dll --def $(srcdir)/libobjc.def \--output-lib libobjc.ainfo: objc-features.infodvi: objc-features.dvihtml: objc-features_toc.htmlobjc-features.info: $(srcdir)/objc-features.teximakeinfo $(srcdir)/objc-features.texiobjc-features.dvi: $(srcdir)/objc-features.texitexi2dvi $(srcdir)/objc-features.texiobjc-features_toc.html: objc-features.texitexi2html -split_node $(srcdir)/objc-features.texiMakefile: Makefile.in config.status$(SHELL) config.statusconfig.status: configurerm -f config.cacheCONFIG_SITE=no-such-file CC='$(CC)' AR='$(AR)' CFLAGS='$(CFLAGS)' \CPPFLAGS='$(CPPFLAGS)' $(SHELL) config.status --recheck${srcdir}/configure: configure.inrm -f config.cachecd ${srcdir} && autoconfinstall: install-libs copy-headersinstall-libs: installdirs-if test -f libobjc.a ; then \rm -f $(libsubdir)/libobjc.a; \$(INSTALL_DATA) libobjc.a $(libsubdir)/libobjc.a; \chmod a-x $(libsubdir)/libobjc.a; \else true; fi-if test -f libobjc_gc.a ; then \rm -f $(libsubdir)/libobjc_gc.a; \$(INSTALL_DATA) libobjc_gc.a $(libsubdir)/libobjc_gc.a; \chmod a-x $(libsubdir)/libobjc_gc.a; \else true; fi-if test -f libobjc_s.a ; then \rm -f $(libsubdir)/libobjc_s.a; \$(INSTALL_DATA) libobjc_s.a $(libsubdir)/libobjc_s.a; \chmod a-x $(libsubdir)/libobjc_s.a; \else true; fi-if test -f libobjc.dll ; then \rm -f $(bindir)/libobjc.dll; \$(INSTALL_DATA) libobjc.dll $(bindir)/libobjc.dll; \else true; fi# Copy Objective C headers to installation include directory.copy-headers:-rm -rf $(incinstalldir)/objc-mkdir $(incinstalldir)/objcfor file in $(OBJC_H); do \realfile=$(srcdir)/objc/$${file}; \cp $${realfile} $(incinstalldir)/objc; \chmod a+r $(incinstalldir)/objc/$${file}; \donecheck uninstall install-strip dist installcheck installdirs:mostlyclean:-rm -f runtime-info.h tmp-runtime.s *.o libobjc* xforward \fflags *.aux *.cp *.dvi *.fn *.info *.ky *.log *.pg \*.toc *.tp *.vr *.html libobj.exp@$(MULTICLEAN) multi-clean DO=mostlycleanclean: mostlycleanrm -f config.log@$(MULTICLEAN) multi-clean DO=cleandistclean: clean@$(MULTICLEAN) multi-clean DO=distcleanrm -f config.cache config.status Makefile configuremaintainer-clean realclean: distclean.PHONY: mostlyclean clean distclean maintainer-clean all check uninstall \install-strip dist installcheck installdirs