summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile125
1 files changed, 125 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..ebf23fb
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,125 @@
+# makefile of pianobar
+
+PREFIX:=/usr/local
+BINDIR:=${PREFIX}/bin
+LIBDIR:=${PREFIX}/lib
+MANDIR:=${PREFIX}/share/man
+CFLAGS:=-Wall -g -std=c99 -pedantic
+
+PIANOBAR_DIR=src
+PIANOBAR_SRC=\
+ ${PIANOBAR_DIR}/main.c \
+ ${PIANOBAR_DIR}/player.c \
+ ${PIANOBAR_DIR}/settings.c \
+ ${PIANOBAR_DIR}/terminal.c \
+ ${PIANOBAR_DIR}/ui_act.c \
+ ${PIANOBAR_DIR}/ui.c \
+ ${PIANOBAR_DIR}/ui_readline.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_OBJ=${PIANOBAR_SRC:.c=.o}
+
+LIBPIANO_DIR=libpiano/src
+LIBPIANO_SRC=\
+ ${LIBPIANO_DIR}/crypt.c \
+ ${LIBPIANO_DIR}/piano.c \
+ ${LIBPIANO_DIR}/xml.c
+LIBPIANO_HDR=\
+ ${LIBPIANO_DIR}/config.h \
+ ${LIBPIANO_DIR}/crypt_key_output.h \
+ ${LIBPIANO_DIR}/xml.h \
+ ${LIBPIANO_DIR}/crypt.h \
+ ${LIBPIANO_DIR}/piano.h \
+ ${LIBPIANO_DIR}/crypt_key_input.h \
+ ${LIBPIANO_DIR}/piano_private.h
+LIBPIANO_OBJ=${LIBPIANO_SRC:.c=.o}
+LIBPIANO_RELOBJ=${LIBPIANO_SRC:.c=.lo}
+LIBPIANO_INCLUDE=${LIBPIANO_DIR}
+
+LIBWAITRESS_DIR=libwaitress/src
+LIBWAITRESS_SRC=${LIBWAITRESS_DIR}/waitress.c
+LIBWAITRESS_HDR=\
+ ${LIBWAITRESS_DIR}/config.h \
+ ${LIBWAITRESS_DIR}/waitress.h
+LIBWAITRESS_OBJ=${LIBWAITRESS_SRC:.c=.o}
+LIBWAITRESS_RELOBJ=${LIBWAITRESS_SRC:.c=.lo}
+LIBWAITRESS_INCLUDE=${LIBWAITRESS_DIR}
+
+LIBEZXML_SRC=libezxml/src/ezxml.c
+LIBEZXML_HDR=libezxml/src/ezxml.h
+LIBEZXML_OBJ=${LIBEZXML_SRC:.c=.o}
+LIBEZXML_RELOBJ=${LIBEZXML_SRC:.c=.lo}
+LIBEZXML_INCLUDE=libezxml/src
+
+LIBAO_INCLUDE=/usr/include
+LIBAO_LIB=-lao
+
+LIBM_LIB=-lm
+
+ifeq (${DISABLE_FAAD}, 1)
+ LIBFAAD_INCLUDE=
+ LIBFAAD_LIB=
+ LIBFAAD_SWITCH=
+else
+ LIBFAAD_INCLUDE:=/usr/include
+ LIBFAAD_LIB:=-lfaad
+ LIBFAAD_SWITCH=-DENABLE_FAAD
+endif
+
+ifeq (${DISABLE_MAD}, 1)
+ LIBMAD_INCLUDE=
+ LIBMAD_LIB=
+ LIBMAD_SWITCH=
+else
+ LIBMAD_INCLUDE:=/usr/include
+ LIBMAD_LIB:=-lmad
+ LIBMAD_SWITCH=-DENABLE_MAD
+endif
+
+PTHREAD_LIB=-pthread
+
+# build pianobar
+pianobar: ${PIANOBAR_OBJ} ${PIANOBAR_HDR} ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} \
+ ${LIBWAITRESS_HDR} ${LIBEZXML_OBJ} ${LIBEZXML_HDR}
+ ${CC} ${CFLAGS} ${PIANOBAR_OBJ} ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} \
+ ${LIBEZXML_OBJ} ${LIBAO_LIB} ${LIBFAAD_LIB} ${LIBMAD_LIB} \
+ ${PTHREAD_LIB} ${LIBM_LIB} -o $@
+
+# build shared libpiano
+libpiano: ${LIBPIANO_RELOBJ} ${LIBPIANO_HDR} ${LIBWAITRESS_RELOBJ} \
+ ${LIBWAITRESS_HDR} ${LIBEZXML_RELOBJ} ${LIBEZXML_HDR}
+ ${CC} -shared ${CFLAGS} ${LIBPIANO_RELOBJ} ${LIBWAITRESS_RELOBJ} \
+ ${LIBEZXML_RELOBJ} -o $@.so.0.0.0
+
+%.o: %.c
+ ${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
+ -I ${LIBEZXML_INCLUDE} ${LIBFAAD_SWITCH} ${LIBMAD_SWITCH} -c \
+ -o $@ $<
+
+# create position independent code (for shared libraries)
+%.lo: %.c
+ ${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
+ -I ${LIBEZXML_INCLUDE} -c -fPIC -o $@ $<
+
+clean:
+ ${RM} ${PIANOBAR_OBJ} ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} ${LIBEZXML_OBJ} \
+ ${LIBPIANO_RELOBJ} ${LIBWAITRESS_RELOBJ} ${LIBEZXML_RELOBJ} pianobar \
+ libpiano.so.0.0.0
+
+all: pianobar libpiano
+
+install: pianobar
+ install -d ${DESTDIR}/${BINDIR}/
+ install -m755 pianobar ${DESTDIR}/${BINDIR}/
+ install -d ${DESTDIR}/${MANDIR}/man1/
+ install -m644 src/pianobar.1 ${DESTDIR}/${MANDIR}/man1/
+
+install-libpiano: libpiano
+ install -d ${DESTDIR}/${LIBDIR}/
+ install -m755 libpiano.so.0.0.0 ${DESTDIR}/${LIBDIR}/
+