#
# @(#)Library.gmk	1.1 97/09/07
#
# Generic makefile for building libraries.
#
# This should be included in your library GNUmakefile.
#

.PHONY: all optimized debug clean .exported.classes

all: optimized debug

library: optimized debug

optimized debug: 

include $(TOPDIR)/build/$(PLATFORM)/makefiles/Classes.gmk
include $(TOPDIR)/build/$(PLATFORM)/makefiles/Defs.gmk

# It is important to define these *after* including Classes.gmk
# in order to override the values defined inthat makefile.
#
DEBUG     = $(LIB_LOCATION)/lib$(LIBRARY)_g.$(LIBRARY_SUFFIX)

OPTIMIZED =  $(LIB_LOCATION)/lib$(LIBRARY).$(LIBRARY_SUFFIX)

FILES_o  = $(patsubst %.c,$(OBJDIR)/%.o,$(FILES_c))
FILES_o += $(patsubst %.s,$(OBJDIR)/%.o,$(FILES_s))
FILES_o += $(patsubst %.cpp,$(OBJDIR)/%.o,$(FILES_cpp))

ifeq ($(LIBRARY), jvm)
$(OPTIMIZED) $(DEBUG) :: \
    $(INIT) $(OBJDIR)/.library.dirs.$(ARCH) .library.headers
	@true
else
$(OPTIMIZED) $(DEBUG) :: \
    $(INIT) $(OBJDIR)/.library.dirs.$(ARCH) classes .library.headers
	@true
endif

$(OPTIMIZED) $(DEBUG):: $(FILES_o)
	@set -- $?; \
	    echo Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
	@echo $@
	@echo "OBJDIR=$(OBJDIR)"
	$(CC) -G -o $@ $(FILES_o) $(LDFLAGS) $(LDLIBS)
	/usr/ccs/bin/mcs -d -a "$(FULL_VERSION)" $@

ifneq ($(PRODUCT), java)
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)
vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)

CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR) \
            -I$(PLATFORM_SRC)/native/$(PKGDIR)
endif

OTHER_INCLUDES += -I$(SHARE_SRC)/native/common \
		  -I$(PLATFORM_SRC)/native/common

CLASSES.export = $(shell echo '$(FILES_export)' '$(FILES_export2)' \
                         | sed -e 's:\.java::g' -e 's:/:\.:g' -e 's/\$$/\\\$$/g')

.exported.classes: .delete.classlist \
	$(FILES_export:%.java=$(CLASSBINDIR)/%.class) .compile.classlist

#
# Delete these libstubs.c rules once conversion to JNI is completed
#
libstubs.c .library.headers :: .exported.classes
	@true

libstubs.c :: $(FILES_export:%.java=$(CLASSBINDIR)/%.class)
	$(JAVAH) $(JAVAHFLAGS) -classpath $(CLASSPATH) -o $@ \
		-stubs $(CLASSES.export)
	@-touch $@	# javah only writes file if changed

.library.headers :: $(FILES_export:%.java=$(CLASSBINDIR)/%.class)
	$(JAVAH) $(JAVAHFLAGS) -classpath $(CLASSPATH) -d $(CLASSHDRDIR)/ \
		$(CLASSES.export)
	@-touch $@

$(OBJDIR)/.library.dirs.$(ARCH): FORCE
	mkdir -p $(LIBDIR)/$(ARCH)/$(TSOBJDIR) $(OBJDIRS)
	@-touch $(OBJDIR)/.library.dirs.$(ARCH)

library.clean: 
	rm -rf libstubs.c $(OBJROOTS) CClassHeaders
	rm -rf $(DEBUG) $(OPTIMIZED) .library.*

clobber :: clean

#
# Include make dependancies
#
files := $(foreach file, $(wildcard */$(ARCH)/$(TSOBJDIR)/*.d), $(file))
ifneq ($(strip $(files)),)
    include $(files)
endif

.PHONY : .exported.classes 
