-
Notifications
You must be signed in to change notification settings - Fork 34
/
Makefile.am
159 lines (130 loc) · 5.43 KB
/
Makefile.am
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
152
153
154
155
156
157
158
159
SUBDIRS = logolib csls helpfiles tests
if DOCS
SUBDIRS += docs
endif
bin_PROGRAMS = ucblogo
logolibdir=$(pkgdatadir)/logolib
helpfilesdir=$(pkgdatadir)/helpfiles
cslsdir=$(pkgdatadir)/csls
tempdir=/tmp
ucblogo_CPPFLAGS = $(AM_CPPFLAGS) \
-DLIBLOC='"$(logolibdir)"' \
-DHELPLOC='"$(helpfilesdir)"' \
-DCSLSLOC='"$(cslsdir)"' \
-DTEMPLOC='"$(tempdir)"'
ucblogo_SOURCES = coms.c error.c eval.c files.c graphics.c init.c \
intern.c libloc.c lists.c logodata.c main.c math.c mem.c paren.c \
parse.c print.c wrksp.c
if OBJECTS
ucblogo_SOURCES += obj.c
endif
# The file git.c is a "built source" (see automake info page "Built
# Sources Example"), a conditional source file, and should not be
# included in distribution tarballs. It also may need to be
# regenerated even if it seems up to date, since make cannot tell if a
# git commit has occurred since git.c was generated. This is
# accomplished by making it depend on a dummy phony target, which is
# by definition never up to date. During regeneration, if git.c exists
# it is replaced only if the new version differs, in order to avoid
# unnecessary recompilation or linking.
if GITID
nodist_ucblogo_SOURCES = git.c
endif
MOSTLYCLEANFILES = git.c
.PHONY: FORCE
FORCE:
git.c: FORCE
echo 'char* GIT = "('`git describe --always||echo -n NA`')";' > git-c-temp
if cmp --quiet git-c-temp $@; then echo "$@ already up to date"; else echo "Refreshing $@"; mv git-c-temp $@; fi
if WX
# need C++ linker
ucblogo_SOURCES += wxMain.cpp wxTerminal.cpp wxCommandHistory.cpp wxTurtleGraphics.cpp
ucblogo_SOURCES += TextEditor.cpp
ucblogo_SOURCES += wxterm.c
else
# do not need C++ linker, no good way to avoid it though
ucblogo_SOURCES += term.c
if X11
ucblogo_SOURCES += xgraphics.c
else
ucblogo_SOURCES += nographics.c
endif
endif
# Desktop file, see https://freedesktop.org/wiki/Howto_desktop_files/
desktopdir = $(datadir)/applications
dist_desktop_DATA = ucblogo.desktop
# Icons
icons256dir = $(datadir)/icons/hicolor/256x256/apps
pixmapsdir = $(datadir)/pixmaps
dist_icons256_DATA = ucblogo.png
dist_pixmaps_DATA = ucblogo.xpm
# Include otherwise-skipped files in distribution tarball
# #include files used in build
EXTRA_DIST = eval.h globals.h gpl_text.h LogoFrame.h logo.h \
nographics.h obj.h TextEditor.h wxGlobals.h wxGraphics.h wxMain.h \
wxTerminal.h wxCommandHistory.h wxTurtleGraphics.h xgraphics.h
# Source for utility program for regenerating ./helpfiles/ from ./usermanual
# See below; needs to run in build environment.
EXTRA_DIST += makehelp.c
# Misc information, documentation, historical files, etc
EXTRA_DIST += changes.txt config.h.msys diffscript.pl .gitignore \
gpl.html Info.plist kdbgrc.logo LICENSE logo.icns logo-Info.plist \
logologo.ico logologo.png logo_win.rc makefile.msys newtermnotes \
pbdevelopment.plist PkgInfo plm README.md ucblogo.bmp ucblogo.dsp \
ucblogo.dsw usermanual inno/ucblogo.iss
# Diagram of evaluator, in three formats because hey why not
EXTRA_DIST += evaluator.ps evaluator.pdf evaluator.svg
# Win32 API compliant graphics routines (unused)
EXTRA_DIST += win32trm.c win32trm.h
# IBM-specific graphics routines (unused)
EXTRA_DIST += ztcterm.c ztcterm.h
# Macintosh graphics routines (unused)
EXTRA_DIST += macterm.c macterm.h
# Something to do with fonts on a Macintosh (unused)
EXTRA_DIST += mac-fontmod/include/wx/mac/carbon/fontdlg.h \
mac-fontmod/include/wx/mac/carbon/private.h \
mac-fontmod/include/wx/mac/fontdlg.h \
mac-fontmod/src/mac/carbon/bfontdlg.cpp \
mac-fontmod/src/mac/carbon/bfontdlgosx.mm \
mac-fontmod/src/mac/carbon/fontdlg.cpp \
mac-fontmod/src/mac/carbon/fontdlgosx.mm
# makehelp_SOURCES = makehelp.c
# Make sure pdf built for distributions
EXTRA_DIST += docs/ucblogo.pdf
docs/ucblogo.pdf: docs/ucblogo.texi
cd docs && $(MAKE) ucblogo.pdf
helpfiles/HELPCONTENTS helpfiles/ALL_NAMES: regenerate-help-index
# Redirection with this phony target avoids the stanza being run
# twice, thus avoiding unecessary work and a race condition.
.PHONY: regenerate-help-index
regenerate-help-index: makehelp usermanual
@echo "Regenerates entire contents of helpfiles/, including index, from usermanual."
./makehelp
@echo "Grave accent as filename is impossible with automake so work around it."
mv -v helpfiles/'`' helpfiles/RENAME-GRAVE-ACCENT
LC_ALL=C sort helptemp | pr -5 -t -l999 -w80 >> helpfiles/HELPCONTENTS
-rm helptemp
all: regenerate-help-index
mac: ucblogo helpfiles/HELPCONTENTS helpfiles/ALL_NAMES
mkdir -p UCBLogo.app
mkdir -p UCBLogo.app/Contents
cp Info.plist UCBLogo.app/Contents/
cp PkgInfo UCBLogo.app/Contents/
cp pbdevelopment.plist UCBLogo.app/Contents/
mkdir -p UCBLogo.app/Contents/Resources/csls
cp csls/[a-z]* UCBLogo.app/Contents/Resources/csls
cp -r helpfiles UCBLogo.app/Contents/Resources/
cp -r logolib UCBLogo.app/Contents/Resources/
mv -v UCBLogo.app/Contents/Resources/logolib/RENAME-GRAVE-ACCENT 'UCBLogo.app/Contents/Resources/logolib/`'
mv -v UCBLogo.app/Contents/Resources/logolib/RENAME-NUMBER-SIGN 'UCBLogo.app/Contents/Resources/logolib/#'
cp logo.icns UCBLogo.app/Contents/Resources/
mkdir -p UCBLogo.app/Contents/MacOS/
cp ucblogo UCBLogo.app/Contents/MacOS/UCBLogo
ucblogo.dmg : mac docs/ucblogo.pdf
rm -f ucblogo.dmg ucblogo_base.dmg
hdiutil create -size 20m -fs HFS+ -volname "UCBLogo" ucblogo_base.dmg
hdiutil attach ucblogo_base.dmg
cp -a UCBLogo.app /Volumes/UCBLogo/
cp docs/ucblogo.pdf /Volumes/UCBLogo/UCBLogoUserManual.pdf
hdiutil detach /Volumes/UCBLogo/
hdiutil convert ucblogo_base.dmg -format UDZO -o ucblogo.dmg