#
#   GNUmakefile
#
#   Copyright (C) 1998 MDlink online service center, Helge Hess
#   
#
#   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.
#

-include config.make
include $(GNUSTEP_MAKEFILES)/common.make

PACKAGE_NAME=skyrix-objc
VERSION=lf2.95.3

GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)

LIBRARY_NAME = libobjc

# dce, decosf1, irix, mach, os2, posix, pthreads, single, solaris, vxworks
THREADING = single

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-decls.h	\
	Object.h	\
	Protocol.h	\
	encoding.h	\
	hash.h		\
	objc-api.h	\
	objc-list.h	\
	objc-mem.h	\
	objc.h		\
	sarray.h	\
	thr.h		\
	typedstream.h	\
#	NXConstStr.h	\

libobjc_OBJC_FILES = \
	Object.m	\
	Protocol.m	\
	linking.m	\
#	NXConstStr.m	\

libobjc_C_FILES = \
	globals.c		\
	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-backends/$(THREADING).c\
	thr.c			\
	libobjc_entry.c		\

ADDITIONAL_CPPFLAGS += \
	-pipe		\
	-DSTDC_HEADERS=1\
	-DHAVE_STDLIB_H	\
	-DOBJC_THREAD_BACKEND='"thr-backends/$(THREADING).h"'\

#	-DOBJC_DEBUG=1	\
#        -DEBUG_DTABLE=1 \

ADDITIONAL_CFLAGS += -O2 -Wall

libobjc_HEADER_FILES_DIR         = .
libobjc_HEADER_FILES_INSTALL_DIR = /objc

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

-include config/$(GNUSTEP_TARGET_CPU)/config.make
-include config/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/config.make

-include GNUmakefile.preamble
include $(GNUSTEP_MAKEFILES)/library.make
-include GNUmakefile.postamble