# BlinkenLib # Copyright 2004-2016 Stefan Schuermans # Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html # a blinkenarea.org project CC:=gcc CFLAGS:=-Wall -Wextra -Werror -fPIC -O2 -I.. LIB_LDFLAGS:= LIB_LDLIBS:= BIN_LDFLAGS:=-L. BIN_LDLIBS:= AR:=ar RANLIB:=ranlib -include ../version.mk -include ../config/config.mk LIB_OBJS:=BlinkenColorizer.o BlinkenFrame.o BlinkenMovie.o \ BlinkenProto.o Tools.o ifeq ($(BLINKENLIB_CFG_MNG),1) LIB_OBJS+=BlinkenMng.o LIB_LDLIBS+=-lmng -lz endif ifeq ($(BLINKENLIB_CFG_GIF),1) LIB_OBJS+=BlinkenGif.o LIB_LDLIBS+=-lgif endif ifeq ($(BLINKENLIB_CFG_WIN),1) SHLIBEXT:=dll LIB_LDLIBS+=-lws2_32 BIN_LDLIBS+=-lws2_32 else ifeq ($(BLINKENLIB_CFG_OSX),1) CFLAGS+=-I/sw/include SHLIBEXT:=dylib LIB_LDFLAGS+=-L/sw/lib BIN_LDFLAGS+=-L/sw/lib -Wl,-rpath,'$$ORIGIN' else SHLIBEXT:=so LIB_LDFLAGS+=-Wl,-soname,libBlinkenLib.$(SHLIBEXT).$(VERSION_MAJOR) BIN_LDFLAGS+=-Wl,-rpath,'$$ORIGIN' endif endif .PHONY: all clean .SUFFIXES: SUFFIXES:= .SECONDARY: all: libBlinkenLib.a \ libBlinkenLib.$(SHLIBEXT).$(VERSION_MAJOR) \ libBlinkenLib.$(SHLIBEXT).$(VERSION) libBlinkenLib.$(SHLIBEXT) all: BlinkenConv BlinkenSend BlinkenRecv ifeq ($(BLINKENLIB_CFG_WIN),0) all: BlinkenOutput BlinkenDeviceOutput endif config.h: ../config/config.h cp $< $@ BlinkenColorizer.o: BlinkenColorizer.c BlinkenColorizer.h Tools.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenProto.o: BlinkenProto.c BlinkenProto.h BlinkenProtoIntern.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenFrame.o: BlinkenFrame.c BlinkenConstants.h BlinkenColorizer.h BlinkenFrame.h BlinkenProto.h BlinkenProtoIntern.h Tools.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenGif.o: BlinkenGif.c BlinkenConstants.h BlinkenColorizer.h BlinkenFrame.h BlinkenProto.h BlinkenMovie.h Tools.h config.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenMovie.o: BlinkenMovie.c BlinkenConstants.h BlinkenColorizer.h BlinkenFrame.h BlinkenProto.h BlinkenMovie.h BlinkenGif.h BlinkenMng.h Tools.h config.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenMng.o: BlinkenMng.c BlinkenConstants.h BlinkenColorizer.h BlinkenFrame.h BlinkenProto.h BlinkenMovie.h Tools.h config.h $(CC) $(CFLAGS) -c -o $@ $< Tools.o: Tools.c Tools.h $(CC) $(CFLAGS) -c -o $@ $< libBlinkenLib.a: $(LIB_OBJS) $(AR) cr $@ $+ $(RANLIB) $@ libBlinkenLib.$(SHLIBEXT).$(VERSION): $(LIB_OBJS) $(CC) -shared $(LIB_LDFLAGS) -o $@ $+ $(LIB_LDLIBS) libBlinkenLib.$(SHLIBEXT).$(VERSION_MAJOR): libBlinkenLib.$(SHLIBEXT).$(VERSION) rm -f $@ ln -s $< $@ libBlinkenLib.$(SHLIBEXT): libBlinkenLib.$(SHLIBEXT).$(VERSION_MAJOR) rm -f $@ ln -s $< $@ Tools2.o: Tools2.c Tools2.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenConv.o: BlinkenConv.c BlinkenLib.h config.h BlinkenColorizer.h BlinkenProto.h BlinkenFrame.h BlinkenMovie.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenConv: BlinkenConv.o libBlinkenLib.$(SHLIBEXT) $(CC) $(BIN_LDFLAGS) -o $@ $< -lBlinkenLib $(BIN_LDLIBS) BlinkenSend.o: BlinkenSend.c BlinkenLib.h config.h BlinkenColorizer.h BlinkenProto.h BlinkenFrame.h BlinkenMovie.h Tools2.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenSend: BlinkenSend.o Tools2.o libBlinkenLib.$(SHLIBEXT) $(CC) $(BIN_LDFLAGS) -o $@ $(filter %.o,$^) -lBlinkenLib $(BIN_LDLIBS) BlinkenRecv.o: BlinkenRecv.c BlinkenLib.h config.h BlinkenColorizer.h BlinkenProto.h BlinkenFrame.h BlinkenMovie.h Tools2.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenRecv: BlinkenRecv.o Tools2.o libBlinkenLib.$(SHLIBEXT) $(CC) $(BIN_LDFLAGS) -o $@ $(filter %.o,$^) -lBlinkenLib $(BIN_LDLIBS) BlinkenOutput.o: BlinkenOutput.c BlinkenLib.h config.h BlinkenColorizer.h BlinkenProto.h BlinkenFrame.h BlinkenMovie.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenOutput: BlinkenOutput.o libBlinkenLib.$(SHLIBEXT) $(CC) $(BIN_LDFLAGS) -o $@ $< -lBlinkenLib $(BIN_LDLIBS) BlinkenDeviceOutput.o: BlinkenDeviceOutput.c BlinkenLib.h config.h BlinkenColorizer.h BlinkenProto.h BlinkenFrame.h BlinkenMovie.h $(CC) $(CFLAGS) -c -o $@ $< BlinkenDeviceOutput: BlinkenDeviceOutput.o libBlinkenLib.$(SHLIBEXT) $(CC) $(BIN_LDFLAGS) -o $@ $< -lBlinkenLib $(BIN_LDLIBS) clean: rm -f BlinkenConv BlinkenSend BlinkenRecv BlinkenOutput BlinkenDeviceOutput libBlinkenLib.$(SHLIBEXT)* libBlinkenLib.a *.o config.h