1# metalock - enhanced screen locker
2# © 2012 Timothy Beyer
3# © 2006-2007 Anselm R. Garbe, Sander van Dijk
4
5include config.mk
6.include "../themes/${DEFAULT_THEME}/metadata.mk"
7
8.if ${USE_ULTRAGETOPT} == "yes"
9OPT_LIBS += -lultragetopt
10OPT_CPPFLAGS += -DULTRAGETOPT_REPLACE_GETOPT
11.endif
12
13.if ${USE_IMLIB2} == "yes"
14OPT_LIBS += -lImlib2
15OPT_CPPFLAGS += -DWITH_IMLIB2
16.endif
17
18.if ${USE_XFT} == "yes"
19OPT_LIBS += -lXft
20OPT_CPPFLAGS += -DWITH_XFT
21OPT_INCS += "-I${PREFIX}/include/freetype2"
22.endif
23
24# Linux probably needs this
25.if ${USE_SHADOW} == "yes"
26OPT_CPPFLAGS += -DWITH_SHADOW_H
27.endif
28
29# This variable does not apply to FreeBSD, it might to other BSDs, though.
30.if ${USE_BSD_AUTH} == "yes"
31OPT_CPPFLAGS += -DWITH_BSD_AUTH
32.endif
33
34# On OpenBSD and Darwin disable this, all others most likely need this enabled
35.if ${USE_CRYPT} == "yes"
36CRYPT= -lcrypt
37.endif
38
39# includes and libs
40INCS = -I. -I${X11INC} -I${PREFIX}/include ${OPT_INCS} -I${PREFIX}/include/X11
41LIBS = -lc ${CRYPT} -L${X11LIB} -L${PREFIX}/lib -lX11 -lXext -lXpm ${OPT_LIBS}
42
43# flags
44CPPFLAGS = -DVERSION=\"${VERSION}\" \
45           -DPREFIX=\"${PREFIX}\" \
46           -DEMAIL=\"${EMAIL}\" \
47           -DDEFAULT_THEME=\"${DEFAULT_THEME}\" \
48		   ${OPT_CPPFLAGS}
49
50.if ${CC} == "clang"
51# -pedantic disabled because of annoying warnings
52CFLAGS = -Wall -Os ${INCS} ${CPPFLAGS}
53LDFLAGS = ${LIBS}
54.elif ${CC} == "gcc"
55# -pedantic disabled because of annoying warning:
56# Xfuncproto.h:134:24: warning: ISO C does not permit named variadic macros
57CFLAGS = -std=c99 -Wall -Os ${INCS} ${CPPFLAGS}
58LDFLAGS = -s ${LIBS}
59.else
60CFLAGS = -std=c99 -Wall -Os ${INCS} ${CPPFLAGS}
61LDFLAGS = -s ${LIBS}
62.endif
63
64SRC = main.c alloc.c args.c event_loop.c draw_fns.c helper_fns.c
65HDR = data.h alloc.h args.h event_loop.h draw_fns.h helper_fns.h
66OBJ = ${SRC:.c=.o}
67
68all: options build postclean
69
70options:
71	@echo metalock build options:
72	@echo "CFLAGS   = ${CFLAGS}"
73	@echo "LDFLAGS  = ${LDFLAGS}"
74	@echo "CC       = ${CC}"
75	@echo "OBJ      = ${OBJ}"
76	@echo
77
78.c.o:
79	@echo CC $<
80	@${CC} -c ${CFLAGS} $<
81
82${OBJ}: config.mk
83
84prebuild:
85	@echo building metalock
86
87postclean:
88	@echo "finished building metalock"
89	@echo
90	@rm -f ${OBJ}
91
92build: prebuild ${OBJ}
93	@echo CC -o $@
94	@echo "Obj: ${OBJ}"
95	@${CC} -o metalock ${OBJ} ${LDFLAGS}
96
97clean:
98	@echo cleaning
99	@rm -f metalock ${OBJ} metalock-${VERSION}.tar.bz2 \
100	metalock_theme-${theme_name}-${theme_version}.tar.bz2
101
102dist: clean
103	@echo "creating dist tarball metalock-${VERSION}"
104	@mkdir -p metalock-${VERSION}
105	@mkdir -p metalock-${VERSION}/src
106	@mkdir -p metalock-${VERSION}/themes
107	@mkdir -p ../themes
108	@cp -p ../LICENSE ../README metalock-${VERSION}
109	@cp -pR Makefile config.mk ${SRC} ${HDR} metalock-${VERSION}/src
110	@tar -cf metalock-${VERSION}.tar metalock-${VERSION}
111	@bzip2 metalock-${VERSION}.tar
112	@mv metalock-${VERSION}.tar.bz2 ../dist/
113	@rm -rf metalock-${VERSION}
114
115dist-theme: clean
116	@echo -n "creating tarball for theme: "
117	@echo "metalock_theme-${theme_name}-${theme_version}"
118	@mkdir -p ../dist/
119	@cd ../themes && \
120		tar -cf \
121		metalock_theme-${theme_name}-${theme_version}.tar ${theme_name} && \
122		bzip2 metalock_theme-${theme_name}-${theme_version}.tar && \
123		mv metalock_theme-${theme_name}-${theme_version}.tar.bz2 ../dist/
124
125install: all
126	@echo installing metalock
127.if !exists(../themes/${DEFAULT_THEME}/metadata.mk)
128	@echo -n "error: missing ../themes/${DEFAULT_THEME}/metadata.mk "
129	@echo "(the default theme is missing)"
130.else
131	@echo installing executable file to ${DEST_PREFIX}/bin
132	@mkdir -p $(DESTDIR)${DEST_PREFIX}/bin
133	@cp -f metalock $(DESTDIR)${DEST_PREFIX}/bin
134	@chmod 755 $(DESTDIR)${DEST_PREFIX}/bin/metalock
135	@echo -n "installing theme to "
136	@echo "${DEST_PREFIX}/share/metalock/themes/${DEFAULT_THEME}"
137	@mkdir -p $(DESTDIR)${DEST_PREFIX}/share/metalock/themes
138	@cp -pRf ../themes/${DEFAULT_THEME} $(DESTDIR)${DEST_PREFIX}/share/metalock/themes
139	@chmod 644 $(DESTDIR)${DEST_PREFIX}/share/metalock/themes/${DEFAULT_THEME}/*
140	@echo "finished installing metalock"
141.endif
142
143uninstall:
144	@echo removing executable file from ${DEST_PREFIX}/bin
145	@rm -rf ${DEST_PREFIX}/share/metalock/themes/${DEFAULT_THEME}
146	@rmdir ${DEST_PREFIX}/share/metalock/themes
147	@rmdir ${DEST_PREFIX}/share/metalock
148	@rm -f ${DEST_PREFIX}/bin/metalock
149
150.PHONY: all options clean dist install uninstall
151