# # Makefile for the GraphLCD skin library # -include ../Make.config CXXFLAGS += -fPIC VERMAJOR = 2 VERMINOR = 1 VERMICRO = 0 BASENAME = libglcdskin.so LIBNAME = $(BASENAME).$(VERMAJOR).$(VERMINOR).$(VERMICRO) OBJS = cache.o config.o display.o font.o function.o object.o parser.o skin.o string.o type.o variable.o xml.o HEADERS = cache.h config.h display.h font.h function.h object.h parser.h skin.h string.h type.h variable.h xml.h ### Inner graphlcd-base dependencies LIBS += -L../glcdgraphics -lglcdgraphics -L../glcddrivers -lglcddrivers ### Implicit rules: %.o: %.c $(CXX) $(CXXFLAGS) -I.. -c $(DEFINES) $(INCLUDES) $< # Dependencies: MAKEDEP = g++ -MM -MG DEPFILE = .dependencies $(DEPFILE): Makefile @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@ -include $(DEPFILE) ### Targets: all: $(LIBNAME) $(LIBNAME): $(OBJS) $(CXX) $(CXXFLAGS) -shared $(OBJS) $(LIBS) -Wl,-soname="$(BASENAME).$(VERMAJOR)" -o $@ ln -sf $(LIBNAME) $(BASENAME) install: all install -d $(LIBDIR) install -m 755 $(LIBNAME) $(LIBDIR)/ install -d $(INCDIR)/glcdskin install -m 644 $(HEADERS) $(INCDIR)/glcdskin/ ( cd $(LIBDIR); ln -sf $(LIBNAME) $(BASENAME).$(VERMAJOR); ln -sf $(LIBNAME) $(BASENAME) ) uninstall: rm -f $(LIBDIR)/$(BASENAME) rm -f $(LIBDIR)/$(BASENAME).$(VERMAJOR) rm -f $(LIBDIR)/$(LIBNAME) (for i in $(HEADERS); do rm -f $(INCDIR)/glcdskin/$$i; done) rmdir $(INCDIR)/glcdskin clean: rm -f $(OBJS) $(DEPFILE) $(LIBNAME) $(BASENAME) *~