CC = g++
FLAGS = -g 
#FLAGS = -g -D_FILE_OFFSET_BITS=64
INC = -I/usr/include/mysql/ -I/usr/lib/perl/5.10/CORE
LIBS = -lmysqlclient -lz -lm -lrt
PERL_MAGIC = $(shell perl -e 'use Config; print $Config{ccflags};')
#-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -fPIC

all: StagedStaticData.so reader

PackedTable.o: PackedTable.cpp PackedTable.h
	$(CC) -c $(FLAGS) $(INC) $<


#StagedStaticData_wrap.cxx: StagedStaticData.i TrackTable.h ProductTable.h ArtistRoyaltyRunSaleTable.h SaleTable.h AlbumTrackTable.h PackedTable.h PackedTable.cpp ArtistContractTable.h AlbumContractTable.h TrackContractTable.h TrackContractIDByTrackIDTable.h AlbumContractIDByAlbumIDTable.h ArtistContractTermTable.h ArtistContractTermIDByArtistContractIDTable.h AlbumIDProductIDDigitalTable.h SaleRunMapPaidBySaleIDTable.h ArtistRoyaltyIncomeItemTable.h ArtistRoyaltyAlbumTable.h
StagedStaticData_wrap.cxx: StagedStaticData.i ProductTable.h PackedTable.h  AlbumTrackTable.h AlbumContractTable.h SaleTable.h
	swig -perl5 -proxy -c++ StagedStaticData.i

StagedStaticData_wrap.o: StagedStaticData_wrap.cxx
	$(CC) -c $(PERL_MAGIC) $(FLAGS) $(INC) $<

StagedStaticData.so: StagedStaticData_wrap.o PackedTable.o
	$(CC) -shared -o $@ $(FLAGS) $(INC) $(LIBS) StagedStaticData_wrap.o PackedTable.o

reader.o: reader.cpp ProductTable.h PackedTable.h AlbumTrackTable.h AlbumContractTable.h SaleTable.h
	$(CC) -c $(FLAGS) $(INC) $<

reader: reader.o PackedTable.o
	$(CC) -o $@ $(FLAGS) $(INC) $(LIBS) $(XLIBS) reader.o PackedTable.o 
    
clean:
	rm *.o *.so *.pm *.cxx reader

