#
# Pablo System: SDDFlibrary/SamplePrograms/Makefile
#
TOP := ../..

override MAKEFLAGS += --no-builtin-rules    # cancel predefined pattern rules
.SUFFIXES:

include $(TOP)/Makefile.defines

LOCAL_FLAGS	:= 			    # extra compiler flags

EXECUTABLES	:= ConvertAIMS \
		   ConvertPICL \
		   FileStats \
		   SDDFconverter \
		   Sample \
		   MergeTwoFiles \
		   SDDFmerge \
		   ExpandField \
		   IOFileStats \
		   FindSddfError \
		   SDDFStatistics

SDDF_LIB	:= ../Pablo/Build/libPablo.a

#
# Default target: all
#	builds bin/$(EXECUTABLES)
#
# Other targets:
#	install 
#	clean
#
.PHONY: all install clean

all:	CC.COMPILER.CONFIG C.COMPILER.CONFIG $(patsubst %,bin/%,$(EXECUTABLES))

bin/%:	%.C CC.COMPILER.CONFIG $(SDDF_LIB)
	makeProgram $<

bin/%:	%.c C.COMPILER.CONFIG $(SDDF_LIB)
	makeProgram $<

bin/SDDFStatistics: CC.COMPILER.CONFIG $(SDDF_LIB) \
	SDDFStatistics/SDDFStatistics.C SDDFStatistics/SDDFStats_Misc.h \
	SDDFStatistics/SummaryInfo.h SDDFStatistics/SDDFStats_Misc.C \
	SDDFStatistics/SummaryInfo.C  
	cd SDDFStatistics; makeStatsProgram

CC.COMPILER.CONFIG: $(TOP)/Makefile.defines ./Makefile
	echo $(C++) $(LOCAL_FLAGS) $(CNFG_C++FLAGS) $(CNFG_C++LDFLAGS) \
							> CC.COMPILER.CONFIG

C.COMPILER.CONFIG: $(TOP)/Makefile.defines ./Makefile
	echo $(CC) $(LOCAL_FLAGS) $(CNFG_CFLAGS) $(CNFG_CLDFLAGS) \
							> C.COMPILER.CONFIG

$(SDDF_LIB):
	$(MAKE) -C ../Pablo/Build

install:    all
	$(MAKEDIRHIER) $(PABLOBIN)
	for f in $(EXECUTABLES); do \
	    install -c -m 755 bin/$$f $(PABLOBIN); \
	done

clean:
	rm -f bin/* *.o CC.COMPILER.CONFIG C.COMPILER.CONFIG
