You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
4.4 KiB
Makefile
189 lines
4.4 KiB
Makefile
#
|
|
# GNUmakefile
|
|
#
|
|
# Copyright (C) 1998 MDlink online service center, Helge Hess
|
|
# All rights reserved.
|
|
#
|
|
# Author: Helge Hess (helge@mdlink.de)
|
|
#
|
|
# This file is part of the MDlink Object Framework 2 (MOF2)
|
|
#
|
|
# Permission to use, copy, modify, and distribute this software and its
|
|
# documentation for any purpose and without fee is hereby granted, provided
|
|
# that the above copyright notice appear in all copies and that both that
|
|
# copyright notice and this permission notice appear in supporting
|
|
# documentation.
|
|
#
|
|
# We disclaim all warranties with regard to this software, including all
|
|
# implied warranties of merchantability and fitness, in no event shall
|
|
# we be liable for any special, indirect or consequential damages or any
|
|
# damages whatsoever resulting from loss of use, data or profits, whether in
|
|
# an action of contract, negligence or other tortious action, arising out of
|
|
# or in connection with the use or performance of this software.
|
|
#
|
|
# $Id$
|
|
|
|
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/common.make
|
|
|
|
PACKAGE_NAME = gnustep-objc
|
|
VERSION=1.0.0
|
|
|
|
GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
|
|
|
|
# Make sure it doesn't get installed in library_combo dir
|
|
LIBRARY_INSTALL_DIR = $(GNUSTEP_TARGET_LIBRARIES)
|
|
|
|
LIBRARY_NAME = libobjc
|
|
|
|
# dce, decosf1, irix, mach, os2, posix, pthreads, single, solaris, vxworks
|
|
THREADING = posix
|
|
ifeq ($(GNUSTEP_TARGET_OS),mingw32)
|
|
THREADING = win32
|
|
endif
|
|
|
|
GC_HEADER_FILES_DIR = ./gc/include
|
|
GC_HEADER_FILES = \
|
|
cord.h \
|
|
ec.h \
|
|
gc.h \
|
|
gc_alloc.h \
|
|
gc_cpp.h \
|
|
gc_inl.h \
|
|
gc_inline.h \
|
|
gc_typed.h \
|
|
weakpointer.h \
|
|
|
|
libobjc_HEADER_FILES = \
|
|
objc/hash.h objc/objc-list.h objc/sarray.h \
|
|
objc/objc.h objc/objc-api.h objc/objc-decls.h \
|
|
objc/NXConstStr.h objc/Object.h \
|
|
objc/Protocol.h objc/encoding.h objc/typedstream.h \
|
|
objc/thr.h
|
|
|
|
libobjc_OBJC_FILES = \
|
|
Object.m \
|
|
Protocol.m \
|
|
linking.m
|
|
|
|
ifeq ($(GNUSTEP_TARGET_OS), cygwin)
|
|
extra_C_FILES=libobjc_entry.c
|
|
else
|
|
extra_C_FILES=
|
|
endif
|
|
|
|
libobjc_C_FILES = \
|
|
archive.c \
|
|
class.c \
|
|
encoding.c \
|
|
gc.c \
|
|
hash.c \
|
|
init.c \
|
|
misc.c \
|
|
nil_method.c \
|
|
objects.c \
|
|
sarray.c \
|
|
selector.c \
|
|
sendmsg.c \
|
|
thr-$(THREADING).c \
|
|
thr.c \
|
|
$(extra_C_FILES)
|
|
|
|
# Add -DDEBUG_RUNTIME to add debug printf statments
|
|
ADDITIONAL_CPPFLAGS += \
|
|
-DIN_GCC \
|
|
-pipe \
|
|
-DSTDC_HEADERS=1\
|
|
-DHAVE_STDLIB_H
|
|
|
|
CC1OBJ = `$(CC) -print-prog-name=cc1obj`
|
|
|
|
ADDITIONAL_CFLAGS += -Wall
|
|
|
|
libobjc_HEADER_FILES_DIR = .
|
|
libobjc_HEADER_FILES_INSTALL_DIR =
|
|
|
|
libobjc_DLL_DEF = libobjc.def
|
|
|
|
ifeq ($(THREADING), single)
|
|
ADDITIONAL_CPPFLAGS += -DOBJC_WITHOUT_THREADING
|
|
endif
|
|
|
|
ifeq ($(gc), yes)
|
|
ADDITIONAL_CPPFLAGS += -DOBJC_WITH_GC=1 -DGC_DEBUG=1
|
|
ADDITIONAL_CPPFLAGS += -DDEBUG_OBJC_GC=0
|
|
libobjc_LIBRARIES_DEPEND_UPON += -lgc
|
|
|
|
ifeq ($(THREADING), solaris)
|
|
ADDITIONAL_CPPFLAGS += -DSOLARIS_THREADS
|
|
endif
|
|
|
|
else # gc
|
|
ADDITIONAL_CPPFLAGS += -DOBJC_WITH_GC=0 -DDEBUG_OBJC_GC=0
|
|
endif
|
|
|
|
ifeq ($(gc), xyes)
|
|
GC_OFILES = \
|
|
alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o \
|
|
headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o \
|
|
malloc.o stubborn.o checksums.o solaris_threads.o irix_threads.o \
|
|
typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o \
|
|
dyn_load.o \
|
|
|
|
ADDITIONAL_LIBRARY_OBJ_FILES = $(addprefix gc/, $(GC_OFILES))
|
|
endif
|
|
|
|
# Additional directories to be created during installation
|
|
ADDITIONAL_INSTALL_DIRS = $(GNUSTEP_HEADERS)/objc
|
|
|
|
-include config/$(GNUSTEP_TARGET_CPU)/config.make
|
|
-include config/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/config.make
|
|
|
|
-include GNUmakefile.preamble
|
|
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/library.make
|
|
-include GNUmakefile.postamble
|
|
|
|
#ADDITIONAL_INCLUDE_DIRS += -Iobjc -I. -I../gcc -I../gcc/config
|
|
ADDITIONAL_INCLUDE_DIRS += \
|
|
-Iconfig/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS) \
|
|
-Iconfig/$(GNUSTEP_TARGET_CPU)/generic \
|
|
-Iobjc -I.
|
|
|
|
before-all:: runtime-info.h
|
|
|
|
ifeq ($(gc),xyes)
|
|
|
|
after-install::
|
|
for file in $(GC_HEADER_FILES) __done; do \
|
|
if [ $$file != __done ]; then \
|
|
$(INSTALL_DATA) $(GC_HEADER_FILES_DIR)/$$file \
|
|
$(GNUSTEP_HEADERS)$(libobjc_HEADER_FILES_INSTALL_DIR)/$$file ; \
|
|
fi; \
|
|
done;
|
|
|
|
endif
|
|
|
|
$(GNUSTEP_OBJ_DIR)/thr-backends: $(GNUSTEP_OBJ_DIR)
|
|
@if [ ! -d $@ ]; then echo mkdir $@; mkdir $@; fi
|
|
|
|
runtime-info.h:
|
|
echo "" > tmp-runtime
|
|
echo "/* This file is automatically generated */" > $@
|
|
$(CC1OBJ) -print-objc-runtime-info tmp-runtime >> $@
|
|
rm -f tmp-runtime
|
|
|
|
|
|
after-clean::
|
|
rm -f runtime-info.h tmp-runtime.s
|
|
|
|
after-distclean::
|
|
rm -f config.status config.log config.cache
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|