mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-09 20:40:06 +08:00
* configure.in: Clean up handling of --enable-version-specific-runtime-libs and related variables; replace 'if test' with 'case' where reasonable. Fix comments. Remove useless libstdcxx_interface. * configure: Regenerate. * configure.in: Use _GCC_TOPLEV_NONCANONICAL_TARGET. Replace uses of target_alias with target_noncanonical. * aclocal.m4: Include ../config/acx.m4. * configure: Regenerate. * Makefile.in: Replace uses of target_alias with target_noncanonical. Fix copyright statement. * configure.in: Hand-inline bulky, confusing macros from aclocal.m4. Replace references to "GNU Objective C" with "GCC". Update copyright notice. Remove stuff for automake, which isn't used in this directory. Remove emacs local variables. * aclocal.m4: Remove hand-inlined macros. Update copyright notice. * configure: Regenerate. From-SVN: r80546
353 lines
10 KiB
Makefile
353 lines
10 KiB
Makefile
# Makefile for GNU Objective C runtime library.
|
|
# Copyright 1993, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004
|
|
# Free Software Foundation, Inc.
|
|
|
|
#This file is part of GCC.
|
|
|
|
#GCC 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.
|
|
|
|
#GCC 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 GCC; 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 = @SHELL@
|
|
MAKEOVERRIDES=
|
|
|
|
#### Start of system configuration section. ####
|
|
|
|
srcdir = @glibcpp_srcdir@
|
|
VPATH = @glibcpp_srcdir@
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
target_noncanonical = @target_noncanonical@
|
|
gcc_version = @gcc_version@
|
|
gcc_version_trigger = @gcc_version_trigger@
|
|
top_srcdir = @top_srcdir@
|
|
toplevel_srcdir = @toplevel_srcdir@
|
|
toolexecdir = @glibcpp_toolexecdir@
|
|
glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
|
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
|
|
|
top_builddir = .
|
|
|
|
libdir = $(exec_prefix)/lib
|
|
libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
|
|
|
|
# Multilib support variables.
|
|
MULTISRCTOP =
|
|
MULTIBUILDTOP =
|
|
MULTIDIRS =
|
|
MULTISUBDIR =
|
|
MULTIDO = true
|
|
MULTICLEAN = 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 = rc
|
|
|
|
RANLIB = @RANLIB@
|
|
|
|
CC = @CC@
|
|
CFLAGS = @CFLAGS@
|
|
WARN_CFLAGS = -W -Wall -Wwrite-strings -Wstrict-prototypes
|
|
GTHREAD_FLAGS=@GTHREAD_FLAGS@
|
|
ALL_CFLAGS = -I. -I$(srcdir) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(WARN_CFLAGS) \
|
|
$(GTHREAD_FLAGS) -DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing
|
|
|
|
# Libtool
|
|
# The following strings describe the version of the obj-C library
|
|
# begin compiled and compatibility issues.
|
|
# Please refer to Libtool documentation about how to manage these
|
|
# numbers.
|
|
LIBOBJC_VERSION = @VERSION@
|
|
LIBOBJC_GC_VERSION = @VERSION@
|
|
# @LIBTOOL@ does not get it right, so we hack it in - FIXME
|
|
LIBTOOL = ./libtool
|
|
LIBTOOL_COMPILE = $(LIBTOOL) --mode=compile
|
|
LIBTOOL_LINK = $(LIBTOOL) --mode=link
|
|
LIBTOOL_INSTALL = $(LIBTOOL) --mode=install
|
|
LIBTOOL_CLEAN = $(LIBTOOL) --mode=clean
|
|
#LIBTOOL_UNINSTALL = $(LIBTOOL) --mode=uninstall
|
|
|
|
INCLUDES = -I$(srcdir)/objc -I$(srcdir)/$(MULTISRCTOP)../gcc \
|
|
-I$(srcdir)/$(MULTISRCTOP)../gcc/config -I$(MULTIBUILDTOP)../../gcc \
|
|
-I$(srcdir)/$(MULTISRCTOP)../include
|
|
|
|
OBJC_GCFLAGS=-DOBJC_WITH_GC=1
|
|
OBJC_THREAD_FILE=thr-objc
|
|
OBJC_BOEHM_GC=@OBJC_BOEHM_GC@
|
|
|
|
.SUFFIXES:
|
|
.SUFFIXES: .c .m .lo
|
|
|
|
.c.lo:
|
|
$(LIBTOOL_COMPILE) $(CC) -c $(ALL_CFLAGS) $(INCLUDES) $<
|
|
|
|
.m.lo:
|
|
$(LIBTOOL_COMPILE) $(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)" \
|
|
"DESTDIR=$(DESTDIR)" \
|
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
|
"EXTRA_OFILES=$(EXTRA_OFILES)" \
|
|
"HDEFINES=$(HDEFINES)" \
|
|
"INSTALL=$(INSTALL)" \
|
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
|
"LDFLAGS=$(LDFLAGS)" \
|
|
"LIBTOOL=$(LIBTOOL)" \
|
|
"LOADLIBES=$(LOADLIBES)" \
|
|
"PICFLAG=$(PICFLAG)" \
|
|
"RANLIB=$(RANLIB)" \
|
|
"SHELL=$(SHELL)" \
|
|
"prefix=$(prefix)" \
|
|
"exec_prefix=$(exec_prefix)" \
|
|
"libdir=$(libdir)" \
|
|
"libsubdir=$(libsubdir)" \
|
|
"tooldir=$(tooldir)"
|
|
|
|
all: libobjc.la $(OBJC_BOEHM_GC)
|
|
: $(MAKE) ; exec $(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.lo class.lo encoding.lo gc.lo hash.lo init.lo linking.lo \
|
|
misc.lo nil_method.lo NXConstStr.lo Object.lo objects.lo \
|
|
Protocol.lo sarray.lo selector.lo sendmsg.lo thr.lo \
|
|
$(OBJC_THREAD_FILE).lo
|
|
|
|
OBJS_GC = archive_gc.lo class_gc.lo encoding_gc.lo gc_gc.lo hash_gc.lo \
|
|
init_gc.lo linking_gc.lo misc_gc.lo nil_method_gc.lo \
|
|
NXConstStr_gc.lo Object_gc.lo objects_gc.lo Protocol_gc.lo \
|
|
sarray_gc.lo selector_gc.lo sendmsg_gc.lo thr_gc.lo \
|
|
$(OBJC_THREAD_FILE)_gc.lo
|
|
|
|
runtime-info.h:
|
|
echo "" > tmp-runtime.m
|
|
echo "/* This file is automatically generated */" > $@
|
|
$(CC) $(MULTIFLAGS) -print-objc-runtime-info -S tmp-runtime.m >> $@
|
|
rm -f tmp-runtime.m tmp-runtime.s
|
|
|
|
archive_gc.lo: archive.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
class_gc.lo: class.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
encoding_gc.lo: encoding.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
gc.lo: gc.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(INCLUDES) $<
|
|
|
|
gc_gc.lo: gc.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
hash_gc.lo: hash.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
init_gc.lo: init.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
linking.lo: linking.m
|
|
$(LIBTOOL_COMPILE) $(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
linking_gc.lo: linking.m
|
|
$(LIBTOOL_COMPILE) $(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) \
|
|
$(OBJC_GCFLAGS) $(INCLUDES) $<
|
|
|
|
misc_gc.lo: misc.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c $(ALL_CFLAGS) -o $@ $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
nil_method_gc.lo: nil_method.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c $(ALL_CFLAGS) -o $@ $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
NXConstStr.lo: NXConstStr.m
|
|
$(LIBTOOL_COMPILE) $(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
NXConstStr_gc.lo: NXConstStr.m
|
|
$(LIBTOOL_COMPILE) $(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) \
|
|
$(OBJC_GCFLAGS) $(INCLUDES) $<
|
|
|
|
Object.lo: Object.m
|
|
$(LIBTOOL_COMPILE) $(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
Object_gc.lo: Object.m
|
|
$(LIBTOOL_COMPILE) $(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) \
|
|
$(OBJC_GCFLAGS) $(INCLUDES) $<
|
|
|
|
objects_gc.lo: objects.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c $(ALL_CFLAGS) -o $@ $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
Protocol.lo: Protocol.m
|
|
$(LIBTOOL_COMPILE) $(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
Protocol_gc.lo: Protocol.m
|
|
$(LIBTOOL_COMPILE) $(CC) -fgnu-runtime -c -o $@ $(ALL_CFLAGS) \
|
|
$(OBJC_GCFLAGS) $(INCLUDES) $<
|
|
|
|
sarray_gc.lo: sarray.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
selector_gc.lo: selector.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
sendmsg.lo: sendmsg.c runtime-info.h
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(INCLUDES) $<
|
|
|
|
sendmsg_gc.lo: sendmsg.c runtime-info.h
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
thr_gc.lo: thr.c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
$(OBJC_THREAD_FILE)_gc.lo: $(OBJC_THREAD_FILE).c
|
|
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
|
|
$(INCLUDES) $<
|
|
|
|
doc: info dvi html
|
|
|
|
libobjc.la: $(OBJS)
|
|
$(LIBTOOL_LINK) $(CC) -o $@ $(OBJS) \
|
|
-rpath $(glibcpp_toolexeclibdir) \
|
|
-version-info $(LIBOBJC_VERSION)
|
|
|
|
libobjc_gc.la: $(OBJS_GC)
|
|
$(LIBTOOL_LINK) $(CC) -o $@ $(OBJS_GC) \
|
|
-rpath $(glibcpp_toolexeclibdir) \
|
|
-version-info $(LIBOBJC_GC_VERSION)
|
|
|
|
#
|
|
# FIXME -- The following part does not fit in the libtool context.
|
|
# Libtool is supposed to [going to] be able to create a win 32 DLL
|
|
# without extra code but since I don't have a win machine to test
|
|
# if it already works, I leave the old code here.
|
|
#
|
|
libobjc_s.a: libobjc.la
|
|
mv libobjc.a libobjc_s.a
|
|
|
|
# Create a relocatable DLL
|
|
libobjc.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.a
|
|
#
|
|
#
|
|
#
|
|
#
|
|
#
|
|
|
|
info:
|
|
dvi:
|
|
html:
|
|
|
|
Makefile: Makefile.in config.status
|
|
$(SHELL) config.status
|
|
|
|
config.status: configure
|
|
rm -f config.cache
|
|
CONFIG_SITE=no-such-file CC='$(CC)' AR='$(AR)' CFLAGS='$(CFLAGS)' \
|
|
CPPFLAGS='$(CPPFLAGS)' $(SHELL) config.status --recheck
|
|
|
|
${srcdir}/configure: configure.in
|
|
rm -f config.cache
|
|
cd ${srcdir} && autoconf
|
|
|
|
install: install-libs install-headers
|
|
|
|
install-libs: installdirs
|
|
$(SHELL) $(toplevel_srcdir)/mkinstalldirs $(DESTDIR)$(glibcpp_toolexeclibdir)
|
|
$(LIBTOOL_INSTALL) $(INSTALL) libobjc.la $(DESTDIR)$(glibcpp_toolexeclibdir);
|
|
if [ "$(OBJC_BOEHM_GC)" ]; then \
|
|
$(LIBTOOL_INSTALL) $(INSTALL) libobjc_gc.la \
|
|
$(DESTDIR)$(glibcpp_toolexeclibdir);\
|
|
fi
|
|
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="$@"
|
|
@-$(LIBTOOL) --mode=finish $(DESTDIR)$(glibcpp_toolexeclibdir)
|
|
|
|
# Copy Objective C headers to installation include directory.
|
|
install-headers:
|
|
$(SHELL) $(toplevel_srcdir)/mkinstalldirs $(DESTDIR)$(libsubdir)/include/objc
|
|
for file in $(OBJC_H); do \
|
|
realfile=$(srcdir)/objc/$${file}; \
|
|
$(INSTALL_DATA) $${realfile} $(DESTDIR)$(libsubdir)/include/objc; \
|
|
done
|
|
|
|
check uninstall install-strip dist installcheck installdirs:
|
|
|
|
mostlyclean:
|
|
-$(LIBTOOL_CLEAN) rm -f libobjc.la libobjc_gc.la *.lo
|
|
-rm -f runtime-info.h tmp-runtime.s *.o *.lo libobjc* xforward \
|
|
fflags *.aux *.cp *.dvi *.fn *.info *.ky *.log *.pg \
|
|
*.toc *.tp *.vr *.html libobj.exp
|
|
@$(MULTICLEAN) multi-clean DO=mostlyclean
|
|
|
|
clean: mostlyclean
|
|
rm -f config.log
|
|
@$(MULTICLEAN) multi-clean DO=clean
|
|
|
|
distclean: clean
|
|
@$(MULTICLEAN) multi-clean DO=distclean
|
|
rm -f config.cache config.status Makefile configure
|
|
|
|
maintainer-clean realclean: distclean
|
|
|
|
.PHONY: mostlyclean clean distclean maintainer-clean all check uninstall \
|
|
install-strip dist installcheck installdirs
|