CC = gcc
CFLAGS = $(VOLFLAG) -idirafter $(DIR_SHARED)myfndt -idirafter $(DIR_SHARED)tl -idirafter $(DIR_SHARED)conduct -idirafter $(DIR_SHARED)options -idirafter $(DIR_HDR)ohdr -idirafter $(DIR_DYN)stem
SOURCES = abststem.cpp actfile.cpp archcmd.cpp archive.cpp atxtrpt.cpp change.cpp cluster.cpp ddkey.cpp decompr.cpp dircont.cpp docdesc.cpp dualmap.cpp dynstem.cpp exedrive.cpp fbdual.cpp filebase.cpp filecmp.cpp filestat.cpp fillopt.cpp hdoc.cpp hstrlong.cpp infra.cpp latecase.cpp lmain.cpp locusopt.cpp lowcase.cpp newcase.cpp newstem.cpp occdatum.cpp preader.cpp punctaxe.cpp recbase.cpp subdatum.cpp subdesc.cpp txtrpt.cpp watch.cpp

ifeq ($(TEMPLATE_KLUDGE),1)
SOURCES += shlib.cpp shlib1.cpp shlibt.cpp tedef0.cpp tedef1.cpp tedef2.cpp tedef3.cpp tedef4.cpp
endif

OBJECTS = $(SOURCES:.cpp=.o)
VPATH = $(DIR_SHARED)options $(DIR_SHARED)conduct $(DIR_SHARED)tl $(DIR_SHARED)myfndt

liblocus.so.$(LIBLOCUS_MAJOR).$(LIBLOCUS_MINOR): $(OBJECTS) liboptions.a libconduct.a libtl.a libmyfndt.a
	gcc $(VOLFLAG) -shared -Wl,-soname,liblocus.so.$(LIBLOCUS_MAJOR) -o liblocus.so.$(LIBLOCUS_MAJOR).$(LIBLOCUS_MINOR) $(OBJECTS) -rdynamic -L$(DIR_SHARED)options -loptions -L$(DIR_SHARED)conduct -lconduct -L$(DIR_SHARED)tl -ltl -L$(DIR_SHARED)myfndt -lmyfndt -ldl -lg++ -lc
	ln -s --force liblocus.so.$(LIBLOCUS_MAJOR).$(LIBLOCUS_MINOR) liblocus.so

include $(SOURCES:.cpp=.d)

%.d: %.cpp
	   bash -ec '$(CC) -M $(CPPFLAGS) $(CFLAGS) $< | sed '\''s/$*\\.o[ :]*/& $@/g'\'' > $@'

%.o: %.cpp
	   $(CC) -c $(CPPFLAGS) $(CFLAGS) $<
