# bus - simple message broadcasting IPC system # See LICENSE file for copyright and license details. PREFIX = /usr BIN = /bin BINDIR = ${PREFIX}${BIN} LIB = /lib LIBDIR = ${PREFIX}${LIB} INCLUDE = /include INCLUDEDIR = ${PREFIX}${INCLUDE} DATA = /share DATADIR = ${PREFIX}${DATA} LICENSEDIR = ${DATADIR}/licenses MANDIR = ${DATADIR}/man PKGNAME = bus MAN1 = bus bus-broadcast bus-create bus-listen bus-remove bus-wait MAN3 = bus_create bus_unlink bus_open bus_close bus_read bus_write MAN5 = bus MAN7 = libbus FLAGS = -std=c99 -Wall -Wextra -pedantic -O2 LIB_MAJOR = 1 LIB_MINOR = 0 LIB_VERSION = ${LIB_MAJOR}.${LIB_MINOR} VERSION = 1.0 all: bus doc doc: man man: man1 man3 man5 man7 bus: bin/bus bin/libbus.so.${LIB_VERSION} bin/libbus.so.${LIB_MAJOR} bin/libbus.so bin/libbus.a man1: $(foreach M,${MAN1},bin/${M}.1) man3: $(foreach M,${MAN3},bin/${M}.3) man5: $(foreach M,${MAN5},bin/${M}.5) man7: $(foreach M,${MAN7},bin/${M}.7) bin/%.1: doc/%.1 @echo SED $@ @mkdir -p bin @sed 's/%VERSION%/${VERSION}/g' < $< > $@ bin/%.3: doc/%.3 @echo SED $@ @mkdir -p bin @sed 's/%VERSION%/${VERSION}/g' < $< > $@ bin/%.5: doc/%.5 @echo SED $@ @mkdir -p bin @sed 's/%VERSION%/${VERSION}/g' < $< > $@ bin/%.7: doc/%.7 @echo SED $@ @mkdir -p bin @sed 's/%VERSION%/${VERSION}/g' < $< > $@ bin/libbus.a: obj/bus-fpic.o @echo AR $@ @mkdir -p bin @ar rcs $@ $^ bin/bus: obj/cmdline-nofpic.o obj/bus-nofpic.o @echo CC -o $@ @mkdir -p bin @${CC} ${FLAGS} -o $@ $^ ${LDFLAGS} bin/libbus.so.${LIB_VERSION}: obj/bus-fpic.o @echo CC -o $@ @mkdir -p bin @${CC} ${FLAGS} -shared -Wl,-soname,libbus.so.${LIB_MAJOR} -o $@ $^ ${LDFLAGS} bin/libbus.so.${LIB_MAJOR}: @echo LN -s $@ @mkdir -p bin @ln -sf libbus.so.${LIB_VERSION} $@ bin/libbus.so: @echo LN -s $@ @mkdir -p bin @ln -sf libbus.so.${LIB_VERSION} $@ obj/%-nofpic.o: src/%.c src/*.h @echo CC -c $@ @mkdir -p obj @${CC} ${FLAGS} -c -o $@ ${CPPFLAGS} ${CFLAGS} $< obj/%-fpic.o: src/%.c src/*.h @echo CC -c $@ @mkdir -p obj @${CC} ${FLAGS} -fPIC -c -o $@ ${CPPFLAGS} ${CFLAGS} $< uninstall: -rm -- "${DESTDIR}${BINDIR}/bus" -rm -- "${DESTDIR}${LIBDIR}/libbus.so.${LIB_VERSION}" -rm -- "${DESTDIR}${LIBDIR}/libbus.so.${LIB_MAJOR}" -rm -- "${DESTDIR}${LIBDIR}/libbus.so" -rm -- "${DESTDIR}${LIBDIR}/libbus.a" -rm -- "${DESTDIR}${INCLUDEDIR}/bus.h" -rm -- "${DESTDIR}${LICENSEDIR}/${PKGNAME}/LICENSE" -rmdir -- "${DESTDIR}${LICENSEDIR}/${PKGNAME}" -rm -- $(foreach M,${MAN1},"${DESTDIR}${MANDIR}/man1/${M}.1") -rm -- $(foreach M,${MAN3},"${DESTDIR}${MANDIR}/man3/${M}.3") -rm -- $(foreach M,${MAN5},"${DESTDIR}${MANDIR}/man5/${M}.5") -rm -- $(foreach M,${MAN7},"${DESTDIR}${MANDIR}/man7/${M}.7") clean: @echo cleaning @-rm -rf obj bin .PHONY: all doc bus man man1 clean install uninstall