diff options
-rw-r--r-- | Makefile | 51 |
1 files changed, 20 insertions, 31 deletions
@@ -6,21 +6,18 @@ LIBDIR:=${PREFIX}/lib INCDIR:=${PREFIX}/include MANDIR:=${PREFIX}/share/man DYNLINK:=0 +CFLAGS?=-O2 -DNDEBUG -# Respect environment variables set by user; does not work with := -ifeq (${CFLAGS},) - CFLAGS=-O2 -DNDEBUG -endif ifeq (${CC},cc) OS := $(shell uname) ifeq (${OS},Darwin) - CC=gcc -std=c99 + CC:=gcc -std=c99 else ifeq (${OS},FreeBSD) - CC=cc -std=c99 + CC:=cc -std=c99 else ifeq (${OS},OpenBSD) - CC=cc -std=c99 + CC:=cc -std=c99 else - CC=c99 + CC:=c99 endif endif @@ -34,15 +31,6 @@ PIANOBAR_SRC:=\ ${PIANOBAR_DIR}/ui.c \ ${PIANOBAR_DIR}/ui_readline.c \ ${PIANOBAR_DIR}/ui_dispatch.c -PIANOBAR_HDR:=\ - ${PIANOBAR_DIR}/player.h \ - ${PIANOBAR_DIR}/settings.h \ - ${PIANOBAR_DIR}/terminal.h \ - ${PIANOBAR_DIR}/ui_act.h \ - ${PIANOBAR_DIR}/ui.h \ - ${PIANOBAR_DIR}/ui_readline.h \ - ${PIANOBAR_DIR}/main.h \ - ${PIANOBAR_DIR}/config.h PIANOBAR_OBJ:=${PIANOBAR_SRC:.c=.o} LIBPIANO_DIR:=src/libpiano @@ -52,19 +40,15 @@ LIBPIANO_SRC:=\ ${LIBPIANO_DIR}/request.c \ ${LIBPIANO_DIR}/response.c \ ${LIBPIANO_DIR}/list.c -LIBPIANO_HDR:=\ - ${LIBPIANO_DIR}/crypt.h \ - ${LIBPIANO_DIR}/piano.h \ - ${LIBPIANO_DIR}/piano_private.h LIBPIANO_OBJ:=${LIBPIANO_SRC:.c=.o} LIBPIANO_RELOBJ:=${LIBPIANO_SRC:.c=.lo} LIBPIANO_INCLUDE:=${LIBPIANO_DIR} -LIBAV_CFLAGS=$(shell pkg-config --cflags libavcodec libavformat libavutil libavfilter) -LIBAV_LDFLAGS=$(shell pkg-config --libs libavcodec libavformat libavutil libavfilter) +LIBAV_CFLAGS:=$(shell pkg-config --cflags libavcodec libavformat libavutil libavfilter) +LIBAV_LDFLAGS:=$(shell pkg-config --libs libavcodec libavformat libavutil libavfilter) -LIBCURL_CFLAGS=$(shell pkg-config --cflags libcurl) -LIBCURL_LDFLAGS=$(shell pkg-config --libs libcurl) +LIBCURL_CFLAGS:=$(shell pkg-config --cflags libcurl) +LIBCURL_LDFLAGS:=$(shell pkg-config --libs libcurl) LIBGCRYPT_CFLAGS:= LIBGCRYPT_LDFLAGS:=-lgcrypt @@ -72,27 +56,32 @@ LIBGCRYPT_LDFLAGS:=-lgcrypt LIBJSONC_CFLAGS:=$(shell pkg-config --cflags json-c 2>/dev/null || pkg-config --cflags json) LIBJSONC_LDFLAGS:=$(shell pkg-config --libs json-c 2>/dev/null || pkg-config --libs json) +LIBAO_CFLAGS:=$(shell pkg-config --cflags ao) +LIBAO_LDFLAGS:=$(shell pkg-config --libs ao) + # combine all flags ALL_CFLAGS:=${CFLAGS} -I ${LIBPIANO_INCLUDE} \ ${LIBAV_CFLAGS} ${LIBCURL_CFLAGS} \ - ${LIBGCRYPT_CFLAGS} ${LIBJSONC_CFLAGS} -ALL_LDFLAGS:=${LDFLAGS} -lao -lpthread -lm \ + ${LIBGCRYPT_CFLAGS} ${LIBJSONC_CFLAGS} \ + ${LIBAO_CFLAGS} +ALL_LDFLAGS:=${LDFLAGS} -lpthread -lm \ ${LIBAV_LDFLAGS} ${LIBCURL_LDFLAGS} \ - ${LIBGCRYPT_LDFLAGS} ${LIBJSONC_LDFLAGS} + ${LIBGCRYPT_LDFLAGS} ${LIBJSONC_LDFLAGS} \ + ${LIBAO_LDFLAGS} # build pianobar ifeq (${DYNLINK},1) -pianobar: ${PIANOBAR_OBJ} ${PIANOBAR_HDR} libpiano.so.0 +pianobar: ${PIANOBAR_OBJ} libpiano.so.0 @echo " LINK $@" @${CC} -o $@ ${PIANOBAR_OBJ} -L. -lpiano ${ALL_LDFLAGS} else -pianobar: ${PIANOBAR_OBJ} ${PIANOBAR_HDR} ${LIBPIANO_OBJ} +pianobar: ${PIANOBAR_OBJ} ${LIBPIANO_OBJ} @echo " LINK $@" @${CC} -o $@ ${PIANOBAR_OBJ} ${LIBPIANO_OBJ} ${ALL_LDFLAGS} endif # build shared and static libpiano -libpiano.so.0: ${LIBPIANO_RELOBJ} ${LIBPIANO_HDR} ${LIBPIANO_OBJ} +libpiano.so.0: ${LIBPIANO_RELOBJ} ${LIBPIANO_OBJ} @echo " LINK $@" @${CC} -shared -Wl,-soname,libpiano.so.0 -o libpiano.so.0.0.0 \ ${LIBPIANO_RELOBJ} ${ALL_LDFLAGS} |