aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 22a7c9e524796f7a1d17e89d56be616708b3c661 (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Do not modify this - modify PREFIX (below) instead.  This is used by
# package manages such as that for Debian.
DESTDIR = 


# Edit the parameters below for your needs.

PREFIX=$(DESTDIR)/usr/local
BINDIR=$(PREFIX)/bin
LIBDIR=$(PREFIX)/lib
MANDIR=$(PREFIX)/man
INCDIR=$(PREFIX)/include

CC = gcc
#CFLAGS = -Wall -g -DBINDIR=\"$(BINDIR)\"
CFLAGS = -O2 -DBINDIR=\"$(BINDIR)\"

PORT = /dev/ttyS0

ENGINES = svgablink serblink

RANLIB = echo
#RANLIB = ranlib

# Do not edit below here, no user serviceable parts.

SRC = dl_add_to_list.c dl_anniv_by_date.c dl_anniv_by_label.c \
	dl_app_by_datetime.c dl_app_by_label.c dl_docrc.c dl_fill_pack_ascii.c \
	dl_free_download.c dl_init_download.c dl_init_watch.c dl_item_ok.c \
	dl_new_item.c dl_new_list.c dl_pack_ascii.c dl_pack_char.c \
	dl_pack_digit.c dl_pack_phone.c dl_pack_size.c dl_phone_by_label.c \
	dl_send_data.c dl_set_error.c dl_set_warn.c dl_sizeof_item.c \
	dl_sizeof_list.c dl_sort.c dl_string_ok.c dl_todo_by_label.c \
	dl_todo_by_prio.c dl_write_save.c

OBJ = dl_add_to_list.o dl_anniv_by_date.o dl_anniv_by_label.o \
	dl_app_by_datetime.o dl_app_by_label.o dl_docrc.o dl_fill_pack_ascii.o \
	dl_free_download.o dl_init_download.o dl_init_watch.o dl_item_ok.o \
	dl_new_item.o dl_new_list.o dl_pack_ascii.o dl_pack_char.o \
	dl_pack_digit.o dl_pack_phone.o dl_pack_size.o dl_phone_by_label.o \
	dl_send_data.o dl_set_error.o dl_set_warn.o dl_sizeof_item.o \
	dl_sizeof_list.o dl_sort.o dl_string_ok.o dl_todo_by_label.o \
	dl_todo_by_prio.o dl_write_save.o \
	parse.o dl_read_save.o

SVGASRC = svgablink.c vt.c send_data.c
SERSRC = serblink.c

SVGAOBJ = svgablink.o vt.o send_data.o
SEROBJ = serblink.o

YACC = bison -y -p dl_ -oy.tab.c
LEX = flex -Pdl_ -olex.yy.c

.PHONY: all clean

all: depend libdatalink.so.1 settime setwatch $(ENGINES)

libdatalink.a: $(OBJ)
	rm -f $@
	ar qv $@ $(OBJ)

libdatalink.so.1: $(OBJ)
	rm -f $@
	$(CC) -shared -o $@ $(OBJ) $(CFLAGS)
	$(RANLIB) $@

dl_read_save.c: dataread.y
	$(YACC) -d dataread.y
	mv y.tab.c $@

parse.c: dataread.l dl_read_save.c y.tab.h
	$(LEX) dataread.l
	mv lex.yy.c $@

depend: parse.c dl_read_save.c
	makedepend -f- -o.o $(CFLAGS) $(SRC) $(SVGASRC) $(SERSRC) > depend
	@echo "Dependencies have been made, re-run make to build"
	@false

serblink.o: $(SERSRC)
	$(CC) -c $(CFLAGS) -DPORT=\"$(PORT)\" $(SERSRC)

serblink: $(SEROBJ)
	rm -f $@
	$(CC) $(CFLAGS) -o $@ $(SEROBJ)

svgablink: $(SVGAOBJ)
	rm -f $@
	$(CC) $(CFLAGS) -o $@ $(SVGAOBJ) -lvga

settime.o: settime.c
	$(CC) $(CFLAGS) -I. -c settime.c 

setwatch.o: setwatch.c
	$(CC) $(CFLAGS) -I. -c setwatch.c 

settime: settime.o libdatalink.a
	$(CC) $(CFLAGS) -o $@ settime.o -L. -ldatalink

setwatch: setwatch.o libdatalink.a
	$(CC) $(CFLAGS) -o $@ setwatch.o -L. -ldatalink

cvt: cvt.o
	$(CC) $(CFLAGS) -o $@

install: all
	mkdir -p $(BINDIR) $(MANDIR)/man1
	install -o root -g video -m 4750 svgablink $(BINDIR)
	install -o root -g root -m 755 serblink $(BINDIR)
	install -o root -g root -m 755 setwatch $(BINDIR)
	install -o root -g root -m 755 settime $(BINDIR)
	install -o root -g root -m 644 setwatch.1 $(MANDIR)/man1
	install -o root -g root -m 644 settime.1 $(MANDIR)/man1
	install -o root -g root -m 644 svgablink.1 $(MANDIR)/man1
	install -o root -g root -m 644 serblink.1 $(MANDIR)/man1

install-devel: install
	mkdir -p $(LIBDIR) $(INCDIR)
	install -o root -g root -m 555 libdatalink.so.1 $(LIBDIR)
	install -o root -g bin -m 555 libdatalink.a $(LIBDIR)
	install -o root -g bin -m 444 datalink.h $(INCDIR)

uninstall:
	rm -f $(BINDIR)/svgablink
	rm -f $(BINDIR)/serblink
	rm -f $(BINDIR)/setwatch
	rm -f $(BINDIR)/settime
	rm -f $(MANDIR)/man1/setwatch.1
	rm -f $(MANDIR)/man1/settime.1
	rm -f $(MANDIR)/man1/svgablink.1
	rm -f $(MANDIR)/man1/serblink.1
	rm -f $(LIBDIR)/libdatalink.so.1
	rm -f $(LIBDIR)/libdatalink.a
	rm -f $(INCDIR)/datalink.h

clean:
	rm -f $(OBJ) libdatalink.a libdatalink.so.1 Makefile.bak
	rm -f $(SVGAOBJ) $(SEROBJ)
	rm -f parse.c dl_read_save.c y.tab.h
	rm -f settime.o setwatch.o cvt.o
	rm -f settime setwatch cvt $(ENGINES)
	rm -f depend

# The next line was used for makedepend
include depend
# DO NOT DELETE