Merge branch 'arkkra' into shiny
[mup] / mup / makefile
1
2 # Makefile for Mup (and auxiliary programs mupdisp, mkmupfnt, and mupmate).
3 # This is not an optimal makefile; instead it tries to be very simple,
4 # and easy to understand, so it can be easily modified, if needed.
5
6 # On most Linux/Unix type systems, just doing
7 # make install
8 # as root will probably work.
9 # (You really only need to be root to copy the products into
10 # the system directories. If you change PREFIX
11 # to point to some other writeable area, you wouldn't need to be root.)
12 # If you only want the Mup program itself, you can do
13 # make mup/mup
14 # The other programs are optional:
15 # - mupdisp runs Mup and then runs GhostScript on the result.
16 # You can run Mup directly, and use gv, GSview, ghostview or any other
17 # PostScript viewer on the Mup output, as an alternative to mupdisp.
18 # - mkmupfnt is only needed if you want to use fonts beyond the basic
19 # standard PostScript fonts.
20 # - mupmate is a graphical user interface front end for Mup.
21 # It is not needed if you intend to only use Mup via command line interface.
22
23 # The mupdisp and mupmate programs require X libraries and headers (www.x.org).
24 # The mupmate program requires FLTK libraries and headers (www.fltk.org).
25
26 # If you want mupdisp to support Linux console mode, make sure you have
27 # the svgalib package installed, then find the two commented-out lines below
28 # related to Linux console support, and uncomment them.
29
30
31 # Lines you might conceivably want to change have comments by them,
32 # explaining how you might want to change them.
33 # Any line without any comment by it is very unlikely to ever need changing.
34
35 #-----------------------------------------------------------------------
36
37 # These define where to put the Mup products.
38 # You could change this to /usr/local or your own space if you like.
39 PREFIX = /usr
40 BINDIR = $(PREFIX)/bin
41 MANDIR = $(PREFIX)/man/man1
42 DOCDIR = $(PREFIX)/share/doc/packages/mup
43
44 # This is the name of your C compiler.
45 # cc would be another common choice.
46 CCOMPILER = gcc
47
48 # This is the name of your C++ compiler.
49 # CC would be another common choice.
50 CPPCOMPILER = g++
51
52 # -O option turns on optimization for most C compilers.
53 # You can add other options, if you like, as appropriate for your C compiler.
54 # Another common addition would be -g to get debugging information.
55 CFLAGS = -O
56
57 # You can change this if your X libraries and headers are somewhere else
58 # (like /usr/X11R6).
59 X_LOCATION = /usr/X11
60
61 # The FLTK header files are under $(FLTK_INCLUDE)/FL
62 FLTK_INCLUDE = $(X_LOCATION)/include
63
64 # You can use fltk_jpeg or jpeg library, whichever you have
65 JPEGLIB = fltk_jpeg
66
67 # You can use fltk_png or png library, whichever you have
68 PNGLIB = fltk_png
69
70 # You can use fltk_z or z library, whichever you have
71 ZLIB = fltk_z
72
73 #-----------------------------------------------------------------------
74
75 MUP_SRC = \
76 mup/abshorz.c \
77 mup/absvert.c \
78 mup/assign.c \
79 mup/beaming.c \
80 mup/beamstem.c \
81 mup/brac.c \
82 mup/charinfo.c \
83 mup/check.c \
84 mup/debug.c \
85 mup/errors.c \
86 mup/extchtbl.c \
87 mup/font.c \
88 mup/fontdata.c \
89 mup/globals.c \
90 mup/grpsyl.c \
91 mup/ifgram.c \
92 mup/lex.c \
93 mup/locvar.c \
94 mup/lyrics.c \
95 mup/macros.c \
96 mup/main.c \
97 mup/mainlist.c \
98 mup/map.c \
99 mup/midi.c \
100 mup/midiutil.c \
101 mup/mkchords.c \
102 mup/muschtbl.c \
103 mup/nxtstrch.c \
104 mup/parstssv.c \
105 mup/parstuff.c \
106 mup/phrase.c \
107 mup/plutils.c \
108 mup/print.c \
109 mup/prntdata.c \
110 mup/prntmisc.c \
111 mup/prnttab.c \
112 mup/prolog.c \
113 mup/range.c \
114 mup/rational.c \
115 mup/relvert.c \
116 mup/restsyl.c \
117 mup/roll.c \
118 mup/setgrps.c \
119 mup/setnotes.c \
120 mup/ssv.c \
121 mup/stuff.c \
122 mup/symtbl.c \
123 mup/tie.c \
124 mup/trantab.c \
125 mup/trnspose.c \
126 mup/undrscre.c \
127 mup/utils.c \
128 mup/ytab.c
129
130 MUP_HDRS = \
131 mup/defines.h \
132 mup/extchar.h \
133 mup/globals.h \
134 mup/muschar.h \
135 mup/rational.h \
136 mup/ssvused.h \
137 mup/structs.h \
138 mup/ytab.h
139
140 MUPDISP_SRC = \
141 mupdisp/at386.c \
142 mupdisp/do_cmd.c \
143 mupdisp/dos.c \
144 mupdisp/genfile.c \
145 mupdisp/init.c \
146 mupdisp/linvga.c \
147 mupdisp/mupdisp.c \
148 mupdisp/xterm.c
149
150 MUPDISP_HDRS = mupdisp/dispttyp.h mupdisp/mupdisp.h
151
152 MUPDISP_BITMAPS = mupdisp/help.bm mupdisp/waitmsg.bm
153
154 MKMUPFNT_SRC = mkmupfnt/mkmupfnt.c
155
156 MUPMATE_SRC = \
157 mupmate/Config.C \
158 mupmate/Edit.C \
159 mupmate/File.C \
160 mupmate/Help.C \
161 mupmate/Main.C \
162 mupmate/Preferences.C \
163 mupmate/Run.C \
164 mupmate/utils.C \
165 mupmate/license.C \
166 mupmate/regform.C \
167 mupmate/template.C
168
169 MUPMATE_HDRS = \
170 mupmate/Config.H \
171 mupmate/Edit.H \
172 mupmate/File.H \
173 mupmate/Help.H \
174 mupmate/Main.H \
175 mupmate/Preferences.H \
176 mupmate/Run.H \
177 mupmate/utils.H \
178 mupmate/globals.H \
179 mupmate/resource.h
180
181 MUPMATE_OTHER_FILES = \
182 mupmate/mup32.xpm
183 #---------------------------------------------------------------
184
185 all: mup/mup mupdisp/mupdisp mkmupfnt/mkmupfnt mupmate/mupmate
186
187 mup/mup: $(MUP_HDRS) $(MUP_SRC)
188 $(CCOMPILER) $(CFLAGS) -o $@ $(MUP_SRC) -lm
189
190 mupdisp/mupdisp: $(MUPDISP_HDRS) $(MUPDISP_BITMAPS) $(MUPDISP_SRC)
191 $(CCOMPILER) $(CFLAGS) -L$(X_LOCATION)/lib -o $@ -DNO_VGA_LIB $(MUPDISP_SRC) -lX11
192 # For Linux console mode support, comment out the previous line
193 # and uncomment the following line
194 # $(CCOMPILER) $(CFLAGS) -L$(X_LOCATION)/lib -o $@ $(MUPDISP_SRC) -lvga -lX11 -lm
195
196 mkmupfnt/mkmupfnt: $(MKMUPFNT_SRC)
197 $(CCOMPILER) $(CFLAGS) -o $@ $(MKMUPFNT_SRC)
198
199 mupmate/mupmate: $(MUPMATE_SRC) $(MUPMATE_HDRS) $(MUPMATE_OTHER_FILES)
200 $(CPPCOMPILER) $(CFLAGS) -o $@ $(MUPMATE_SRC) \
201 -I$(FLTK_INCLUDE) -Imup -L$(X_LOCATION)/lib \
202 -lfltk -lfltk_images -lXext -lX11 -lXpm \
203 -l$(JPEGLIB) -l$(PNGLIB) -l$(ZLIB) -lm
204
205 install: all
206 mkdir -p $(BINDIR) $(MANDIR) $(DOCDIR)/uguide
207 cp mup/mup $(BINDIR)/mup
208 cp mkmupfnt/mkmupfnt $(BINDIR)/mkmupfnt
209 cp mupdisp/mupdisp $(BINDIR)/mupdisp
210 # For Linux console mode support, uncomment the following line
211 # chown root $(BINDIR)/mupdisp ; chmod 4755 $(BINDIR)/mupdisp
212 cp mupmate/mupmate $(BINDIR)/mupmate
213 cp mupprnt $(BINDIR)/mupprnt
214 cp docs/*.1 $(MANDIR)
215 cp docs/README* docs/*.txt docs/*.ps docs/*.mup $(DOCDIR)
216 cp docs/uguide/* $(DOCDIR)/uguide
217
218 clean:
219 rm -f mup/*.o mupdisp/*.o mkmupfnt/*.o mupmate/*.o
220
221 clobber: clean
222 rm -f mup/mup mupdisp/mupdisp mkmupfnt/mkmupfnt mupmate/mupmate