OBJS= Object.o \ Magnitude.o \ Character.o \ Association.o \ Collection.o \ Set.o \ IdentitySet.o \ Dictionary.o \ IdentityDictionary.o \ SequenceableCollection.o \ OrderedCollection.o \ SortedCollection.o \ ArrayedCollection.o \ Array.o \ ByteArray.o \ String.o \ Symbol.o \ Stream.o \ Iterator.o DEPS= $(OBJS:.o=.d) main.d #CXX= ccache c++ CXX= c++ CFLAGS= # -O2 -DNDEBUG CXXFLAGS= $(CFLAGS) all : main run : main ./main main : main.o oop.a $(CXX) $(CXXFLAGS) -Wall -Werror -g -o $@ $< oop.a -lgccpp -lgc oop.a : $(OBJS) ar rcs $@-new $(OBJS) mv $@-new $@ %.o : %.cc $(CXX) $(CXXFLAGS) -Wall -Werror -g -c -o $@ $< clean : .force -rm -f main oop.a *.o *.d *~ spotless : clean .force : -include $(DEPS) %.d : %.cc $(SHELL) -ec '$(CXX) -MM $(CXXFLAGS) $< \ | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \ [ -s $@ ] || rm -f $@' %.d : %.c $(SHELL) -ec '$(CC) -MM $(CFLAGS) $< \ | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \ [ -s $@ ] || rm -f $@'