-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (56 loc) · 1.81 KB
/
Makefile
File metadata and controls
68 lines (56 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
CC := gcc
LD := gcc
YACC := bison -y
LEX := flex -l
DFLAGS := -g -O2 -fno-strict-aliasing
YFLAGS := -d
LDFLAGS := -lXmu -lXt -lSM -lICE -lXext -lX11 -lXt -lSM -lICE -lXext -lX11 -lXinerama -lXrandr
CFLAGS := -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFUNCPROTO=15 -DNARROWPROTO -std=c11 -Iincludes/
TARGET := twm
OBJS := gram.o lex.o deftwmrc.o add_window.o gc.o list.o twm.o parse.o menus.o events.o resize.o util.o version.o iconmgr.o cursor.o icons.o session.o accessible_addr.o xinerama.o xrandr.o monitor.o
MV := mv
RM := rm
ASTYLE := astyle
PREFIX := /usr/local/
vpath %.c src/
vpath %.y src/
vpath %.l src/
vpath %.o bin/
vpath %.h includes/
all: bin/$(TARGET)
bin/$(TARGET): $(OBJS)
$(LD) $(DFLAGS) -o $@ $(addprefix bin/,$(OBJS)) $(LDFLAGS)
%.o: %.c includes/*.h
$(CC) $(DFLAGS) $(CFLAGS) -c -o bin/$@ $<
src/gram.c: gram.y
$(YACC) $(YFLAGS) $<
$(MV) y.tab.c $@
@if [ -f y.tab.h ]; then set -x; $(MV) y.tab.h includes/gram.h; \
else exit 0; fi
src/lex.c: lex.l
$(LEX) $<
$(MV) lex.yy.c $@
src/deftwmrc.c: system.twmrc
$(RM) -f $@
echo '/* ' >>$@
echo ' * This file is generated automatically from the default' >>$@
echo ' * twm bindings file system.twmrc by the twm Imakefile.' >>$@
echo ' */' >>$@
echo '' >>$@
echo 'char *defTwmrc[] = {' >>$@
sed -e '/^#/d' -e 's/"/\\"/g' -e 's/^/ "/' -e 's/$$/",/' \
system.twmrc >>$@
echo ' (char *) 0 };' >>$@
.PHONY: clean
clean:
$(RM) -f bin/*
$(RM) -f includes/gram.h
$(RM) -f src/gram.c
$(RM) -f src/lex.c
$(RM) -f src/deftwmrc.c
.PHONY: format
format:
$(ASTYLE) --mode=c -s2 -n -j -W3 -k3 -A2 src/*.c includes/*.h
.PHONY: install
install:
install bin/$(TARGET) $(PREFIX)/bin/$(TARGET)