xref: /freebsd/contrib/bsddialog/lib/Makefile (revision 3e42d7194bdcd4fbfd781518258f919d6ac803d3)
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