##########################################################################
#
# Xclasses makefile  -  by Jrgen Schmitz
#
# - static .a archiv 
# - dynamic ELF library
# - ($Id: Makefile,v 1.6 1998/12/31 00:41:51 schmitzj Exp $)
#
##########################################################################

TOPDIR=..
include $(TOPDIR)/Rules

ALL=service gadget output group specialgroups window gfx dialog popup message html

all: $(TOPDIR)/lib/$(ARNAME) $(TOPDIR)/lib/$(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH)

install: $(TOPDIR)/lib/$(ARNAME) $(TOPDIR)/lib/$(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH)
	$(MAKE) -C ../ install

depend:
	@if [ ! -d "../include/Xclasses" ]; then\
	  ln -s . ../include/Xclasses;\
	fi
	(for N in $(ALL); do $(MAKE) -C $$N depend; done)

clean:
	(for N in $(ALL); do $(MAKE) -C $$N clean; done)
	$(MAKE) -C bin clean
	rm -f version.o version.lo
	rm -rf .libs
	rm -rf libXclasses.la

zip:
	$(MAKE) -C ../ zip

#-------------------------------------------------------------------------

$(TOPDIR)/lib/$(ARNAME): arc version.o
	$(AR) -rucv $(TOPDIR)/lib/$(ARNAME) version.o `cat *.arc`
	$(RANLIB) $(TOPDIR)/lib/$(ARNAME)

$(TOPDIR)/lib/$(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH): arc version.o
ifeq ($(SHAREDLIB),y)
	$(LD) -shared -Wl,-soname,"$(LIBNAME)$(LIBMAJOR)" -o $(TOPDIR)/lib/$(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH) version.o `cat *.arc` $(CCFLAGS)
	(cd $(TOPDIR)/lib;rm -f $(TOPDIR)/lib/$(LIBNAME)$(LIBMAJOR);ln -s $(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH) $(LIBNAME)$(LIBMAJOR))
	(cd $(TOPDIR)/lib;rm -f $(TOPDIR)/lib/libXclasses.so;ln -s $(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH) libXclasses.so)
else
	rm -f $(TOPDIR)/lib/$(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH)
	rm -f $(TOPDIR)/lib/$(LIBNAME)$(LIBMAJOR)
	rm -f $(TOPDIR)/lib/libXclasses.so
endif

thelib: arc
	bin/libtool --mode=link $(CC) -version-info 0:$(LIBMINOR):$(LIBMAJOR) -o libXclasses.la -rpath /tmp version.lo `cat *.arc`
	cp .libs/libXclasses.a $(TOPDIR)/lib/
ifeq ($(SHAREDLIB),y)
	cp .libs/libXclasses.so.*.* $(TOPDIR)/lib/$(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH)
	(cd $(TOPDIR)/lib;rm -f $(TOPDIR)/lib/libXclasses.so;ln -s $(LIBNAME)$(LIBMAJOR).$(LIBMINOR).$(LIBPATCH) libXclasses.so)	
endif	


#-------------------------------------------------------------------------

version.o: $(ALL) version.cxx
	@if [ ! -f .version ]; then \
		echo 1 > .version; \
	else \
		expr `cat .version` + 1 > .version; \
	fi
	@echo "#define LIBCOMPILE `cat .version`" >version.h
#	@$(CC) -c version.cxx  $(CCFLAGS) -DLIBMAJOR=$(LIBMAJOR) -DLIBMINOR=$(LIBMINOR) -DLIBPATCH=$(LIBPATCH) -DLIBVERSION=\"$(VERSION)\"
	@bin/libtool --mode=compile $(CC) $(CCFLAGS) -DLIBMAJOR=$(LIBMAJOR) -DLIBMINOR=$(LIBMINOR) -DLIBPATCH=$(LIBPATCH) -DLIBVERSION=\"$(VERSION)\" -c version.cxx 

arc:
	@if [ ! -d "../include/Xclasses" ]; then\
	  ln -s . ../include/Xclasses;\
	fi
	@if [ ! -d "../lib" ]; then\
	  mkdir ../lib;\
	fi
	$(MAKE) -C bin
	@rm -f Results
	@(for N in $(ALL); do $(MAKE) -C $$N compile; done)
	@echo "Compile results in Results"
