TOP=. CXX = g++ CLASSFS=/u/6.824/classfs-0.0 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$(CLASSFS) -I$(SFSINCLUDE) -I/usr/local/include -Wall -Werror -Wno-unused LIBS = -L$(CLASSFS) -L$(SFSLIB) -L/usr/local/lib -lclassfs -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_MOST_SOURCES= arborescentinodelog.C fsdir.C nfsprovider.C \ chunkable.C rabinpoly.C fs.C happyio.C inodelog.C persifs.C \ disksuperblob.C memsuperblob.C memblobindex.C fsfile.C lockmanager.C \ writegrouper.C diskblobindex.C logginginodelog.C PERSIFSD_SOURCES=$(PERSIFSD_MOST_SOURCES) persifsd.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 bplustree.h \ persibplustree.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 test/testbplustree.C test/testpersibplustree.C \ test/benchilog.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_MOST_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=) rm -rf disk