1# PUBLIC DOMAIN - NO WARRANTY, see: 2# <http://creativecommons.org/publicdomain/zero/1.0/> 3# 4# Written in 2021 by Alfonso Sabato Siciliano 5 6LIBRARY = bsddialog 7LIBRARY_SO = lib${LIBRARY:=.so} 8LIBRARY_A = lib${LIBRARY:=.a} 9HEADERS = bsddialog.h bsddialog_theme.h bsddialog_progressview.h 10SOURCES = barbox.c datebox.c formbox.c libbsddialog.c lib_util.c \ 11 menubox.c messagebox.c textbox.c theme.c timebox.c 12OBJECTS = ${SOURCES:.c=.o} 13PREFIX = /usr/local 14 15.if defined(DEBUG) 16CFLAGS += -g 17.endif 18CFLAGS += -D_XOPEN_SOURCE_EXTENDED -fPIC -Wall -Wextra -std=gnu99 \ 19 -fstack-protector-strong 20LDFLAGS += -fstack-protector-strong -shared -Wl,-x -Wl,--fatal-warnings \ 21 -Wl,--warn-shared-textrel -Wl,-soname,${LIBRARY_SO}.${VERSION} \ 22 -L/usr/lib -lncursesw -ltinfow 23 24LN = ln -s -f 25RM = rm -f 26 27all: ${LIBRARY} 28 29install: all 30 ${INSTALL} -m 0644 bsddialog.h ${DESTDIR}${PREFIX}/include/bsddialog.h 31 ${INSTALL} -m 0644 bsddialog_progressview.h ${DESTDIR}${PREFIX}/include/bsddialog_progressview.h 32 ${INSTALL} -m 0644 bsddialog_theme.h ${DESTDIR}${PREFIX}/include/bsddialog_theme.h 33 ${INSTALL} -m 0644 ${LIBRARY_A} ${DESTDIR}${PREFIX}/lib/${LIBRARY_A} 34 ${INSTALL} -m 0755 ${LIBRARY_SO}.${VERSION} ${DESTDIR}${PREFIX}/lib/${LIBRARY_SO}.${VERSION} 35 ${LN} ${LIBRARY_SO}.${VERSION} ${DESTDIR}${PREFIX}/lib/${LIBRARY_SO} 36 37uninstall: 38 ${RM} ${DESTDIR}${PREFIX}/include/bsddialog.h 39 ${RM} ${DESTDIR}${PREFIX}/include/bsddialog_progressview.h 40 ${RM} ${DESTDIR}${PREFIX}/include/bsddialog_theme.h 41 ${RM} ${DESTDIR}${PREFIX}/lib/${LIBRARY_A} 42 ${RM} ${DESTDIR}${PREFIX}/lib/${LIBRARY_SO}.${VERSION} 43 ${RM} ${DESTDIR}${PREFIX}/lib/${LIBRARY_SO} 44 45${LIBRARY}: ${LIBRARY_SO} ${LIBRARY_A} 46 47${LIBRARY_SO}.${VERSION}: ${OBJECTS} 48 ${CC} ${LDFLAGS} ${.ALLSRC} -o ${LIBRARY_SO}.${VERSION} 49 50${LIBRARY_SO}: ${LIBRARY_SO}.${VERSION} 51 ${LN} ${LIBRARY_SO}.${VERSION} ${LIBRARY_SO} 52 53${LIBRARY_A}: ${OBJECTS} 54 ${AR} cr ${.TARGET} ${OBJECTS} 55 ${RANLIB} ${.TARGET} 56 57.c.o: 58 ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 59 60clean: 61 ${RM} ${LIBRARY_SO}* *.o *~ *.gz ${LIBRARY_A} 62 63.PHONY: all install uninstall ${LIBRARY} clean 64