TOP=. CXX = g++ SFSLIB=/u/6.824/sfs-0.7.2-inst/lib/sfs-0.7.2 SFSINCLUDE=/u/6.824/sfs-0.7.2-inst/include/sfs-0.7.2 RPCC=/u/6.824/sfs-0.7.2-build/rpcc/rpcc CFLAGS = -g -I. -I$(TOP) -I$(SFSINCLUDE) -I/usr/local/include -Wall -Werror -Wno-unused LIBS = -L$(SFSLIB) -L/usr/local/lib -lsfsmisc -lsvc -lsfscrypt -larpc -lasync -lgmp -ldmalloc all : tests persifsd # # Generic rules # %.o : %.C $(CXX) $(CFLAGS) -c $< -o $@ # # persifsd # # Add source files to this as the actually appear PERSIFSD_SOURCES=chunkable.C rabinpoly.C fs.C happyio.C inodelog.C persifs.C disksuperblob.C memsuperblob.C memblobindex.C bplustree.C #PERSIFSD_SOURCES=blobindex.C chunkable.C fs.C fsdir.C fsfile.C inodelog.C \ # persifs.C superblob.C PERSIFSD_HEADERS=$(PERSIFSD_SOURCES:.C=.h) marshal.h persifsd : $(PERSIFSD_SOURCES:.C=.o) $(CXX) $(CFLAGS) -o $@ $^ $(LIBS) # Add dependency on header files to the persifs object targets $(PERSIFSD_SOURCES:.C=.o): %.o : %.C $(PERSIFSD_HEADERS) # Ah, gmake # # tests # PERSIFS_TEST_SHARED=test/testutils.C PERSIFS_TEST_SOURCES=test/testblobindex.C test/testsuperblob.C test/testchunkable.C PERSIFS_TEST_EXTRAS=test/demorabin.C PERSIFS_TEST_HEADERS=$(PERSIFS_TEST_SHARED:.C=.h) $(PERSIFS_TEST_SOURCES:.C=.h) $(PERSIFSD_HEADERS) tests: $(PERSIFS_TEST_SOURCES:.C=) $(PERSIFS_TEST_SHARED:.C=.o): %.o : %.C $(PERSIFS_TEST_HEADERS) $(PERSIFS_TEST_SOURCES:.C=.o): %.o : %.C $(PERSIFS_TEST_HEADERS) $(PERSIFS_TEST_SOURCES:.C=): % : %.o $(PERSIFSD_SOURCES:.C=.o) $(PERSIFS_TEST_SHARED:.C=.o) $(CXX) $(CFLAGS) -o $@ $^ $(LIBS) # # clean # clean: rm -f *.o *.core persifsd test/*.o $(PERSIFS_TEST_SOURCES:.C=)