CXX = c++ VERSION=0.8.0 LIBNAME=libboard DYNLIB_EXTENSION=so STATICLIB_EXTENSION=a DYNLIB_NAME=$(LIBNAME).$(DYNLIB_EXTENSION) STATICLIB_NAME=$(LIBNAME).$(STATICLIB_EXTENSION) DYNLIB=lib/$(DYNLIB_NAME) STATICLIB=lib/$(STATICLIB_NAME) PREFIX=/usr/local RM=rm -f LD=$(CXX) LDFLAGSLIB=-shared AR=ar ARFLAGS=rv LN=ln -s CXXFLAGSOBJ=-fno-common -pedantic -Wall -g -I./include CXXFLAGSEXEC=-fno-common -pedantic -Wall -g -I./include .PHONY: all clean install examples lib doc OBJS=obj/Board.o obj/Transforms.o obj/Shapes.o obj/Rect.o obj/Color.o all: lib examples lib: $(STATICLIB) $(DYNLIB) examples: lib bin/arithmetic bin/example1 bin/example2 bin/example3 $(DYNLIB): $(OBJS) $(RM) $@ $(LD) -o $@ $(LDFLAGSLIB) $(OBJS) chmod 755 $@ $(STATICLIB): $(OBJS) $(RM) $@ $(AR) $(ARFLAGS) $@ $(OBJS) chmod 644 $@ obj/%.o: src/%.cc include/board/%.h $(CXX) $(CXXFLAGSOBJ) -c -o $@ $< bin/%: examples/%.cc $(STATICLIB) $(CXX) $(CXXFLAGSEXEC) -o $@ $< $(STATICLIB) clean: rm -f obj/*.o lib/libboard.a bin/* include/*~ include/board/*~ src/*~ examples/*~ *~ install: all install -d $(PREFIX)/lib ; chmod 755 $(PREFIX)/lib cp $(STATICLIB) $(PREFIX)/lib ; chmod 644 $(PREFIX)/lib/$(STATICLIB_NAME) cp $(DYNLIB) $(PREFIX)/lib ; chmod 755 $(PREFIX)/lib/$(DYNLIB_NAME) install -d $(PREFIX)/include/board chmod 755 $(PREFIX)/include/board cp include/board/*.h $(PREFIX)/include/board chmod 644 $(PREFIX)/include/board/*.h $(RM) $(PREFIX)/include/Board.h cd $(PREFIX)/include; $(LN) board/Board.h ./Board.h doc: rm -rf doc/html/* ; doxygen install_doc: doc rm -rf $(PREFIX)/share/doc/libboard/html install -d $(PREFIX)/share/doc/libboard cp -r doc/html $(PREFIX)/share/doc/libboard