forked from calband/calchart
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
151 lines (113 loc) · 3.39 KB
/
Makefile
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
148
149
150
151
# Makefile for calchart (UNIX).
#### TOOLS ####
WXCONFIG = wx-config
LEX = flex
LFLAGS = -B -i
YACC = bison
YFLAGS = -dv
CXXFLAGS += `$(WXCONFIG) --cxxflags`
CXXFLAGS += -I$(RESDIR) -I$(SRCDIR)
CXXFLAGS += -g -Wall $(CONF_FLAGS)
CXX = `$(WXCONFIG) --cxx`
LIBS = `$(WXCONFIG) --libs`
#### Directories ####
SRCDIR = ./src
GENDIR = ./generated
RESDIR = ./resources
OBJDIR = build
WINOBJDIR = build-win
#### Files ####
HEADERS = $(wildcard $(SRCDIR)/*.h)
SRCS = $(wildcard $(SRCDIR)/*.cpp)
GENERATED_BASES = $(SRCDIR)/contscan.l $(SRCDIR)/contgram.y
GENERATED_SRCS = $(GENDIR)/contscan.cpp $(GENDIR)/contgram.cpp
GENERATED_FILES = $(GENERATED_SRCS) $(WINOBJDIR)/README.txt
OBJS += $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(SRCS))
OBJS += $(patsubst $(GENDIR)/%.cpp, $(OBJDIR)/%.o, $(GENERATED_SRCS))
IMAGES = $(wildcard $(RESDIR)/*.xbm)
IMAGES_X = $(wildcard $(RESDIR)/*.xpm)
IMAGES_BMP = $(IMAGES:.xbm=.bmp)
IMAGES_MSW = $(IMAGES_BMP) calchart.ico
IMAGES_ALL = $(IMAGES) $(IMAGES_X) calchart.ico
DOCSRCDIR = doc_src
DOCSRC = $(wildcard $(DOCSRCDIR)/*)
MOSTSRCS = $(SRCS) $(GENERATED_BASES) $(HEADERS) $(DOCSRC)
ALLSRCS = $(MOSTSRCS) $(IMAGES_ALL) Makefile xbm2xpm \
makefile.wat calchart.rc install.inf
MSWSRCS = $(MOSTSRCS) $(GENERATED_SRCS) \
makefile.wat calchart.rc install.inf
#### Targets ####
all: calchart
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
@mkdir -p $(OBJDIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(OBJDIR)/%.o: $(GENDIR)/%.cpp
@mkdir -p $(OBJDIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(GENDIR)/%.cpp: $(SRCDIR)/%.y
@mkdir -p $(GENDIR)
$(YACC) $(YFLAGS) $< -o $@
$(GENDIR)/%.cpp: $(SRCDIR)/%.l
@mkdir -p $(GENDIR)
$(LEX) $(LFLAGS) -t $< > $@
%.bmp: %.xbm
# use ImageMagick to convert
rm -f $@
convert $< $@
generate: $(GENERATED_FILES)
calchart: $(OBJS)
$(CXX) $(CXXFLAGS) $(OBJS) -o $@ $(LIBS)
TAGS: $(SRCS) $(HEADERS)
etags $(SRCS) $(HEADERS)
tags:: TAGS
# Stuff for help files
docs/charthlp.dvi: html $(DOCSRC)
cd docs; latex charthlp; latex charthlp; makeindex charthlp; latex charthlp
docs/charthlp.ps: docs/charthlp.dvi
cd docs; dvips -f -r < charthlp.dvi > charthlp.ps
docs/charthlp.ps.gz: docs/charthlp.ps
rm -f $@
gzip -c9 $< > $@
docs/charthlp_contents.html: $(DOCSRC)
mkdir -p docs
cp $(DOCSRC) docs
-cd docs; tex2rtf charthlp.tex charthlp.html -twice -html
docs/charthlp.html.tar.gz: docs/charthlp_contents.html
rm -f $@
tar cf - docs/*.html | gzip -9 > $@
docs/charthlp.tex.tar.gz: $(TEXDOCS)
rm -f $@
tar cf - $(TEXDOCS) | gzip -9 > $@
ps: docs/charthlp.ps
html: docs/charthlp_contents.html
$(WINOBJDIR)/README.txt : README.txt
sed 's/$$/\r/' $< > $@
chartsrc.tar.gz: $(ALLSRCS)
rm -f $@
mv -f Makefile Makefile.bak
sed '/^# DO NOT DELETE/q' Makefile.bak > Makefile
tar cf - $(ALLSRCS) | gzip -9 > $@
mv -f Makefile.bak Makefile
chartbin.tar.gz: calchart
rm -f $@
tar cf - calchart | gzip -9 > $@
chartsrc.zip: $(MSWSRCS) $(IMAGES_MSW)
rm -f $@
zip -Dlqr9 $@ $(MSWSRCS)
zip -q9 $@ $(IMAGES_MSW)
length::
@echo `cat $(HEADERS) $(SRCS) $(GENERATED_BASES) | wc -l` C++ lines in $(HEADERS) $(SRCS) $(GENERATED_BASES)
tar:: chartsrc.tar.gz
distrib:: chartbin.tar.gz docs/charthlp.ps.gz docs/charthlp.html.tar.gz \
docs/charthlp.tex.tar.gz
zip:: chartsrc.zip
clean::
rm -f $(OBJS) $(GENERATED_FILES) calchart core *~ *.bak TAGS
rm -rf $(OBJDIR)
depend::
rm -f depend
gcc -MM $(CXXFLAGS) $(SRCS) $(GENERATED_SRCS) > depend
ifeq (depend,$(wildcard depend))
include depend
endif
# DO NOT DELETE