1 # Copyright 1996-2004,2006-2010 Alain Knaff.
2 # This file is part of mtools.
4 # Mtools is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
9 # Mtools is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with Mtools. If not, see <http://www.gnu.org/licenses/>.
19 # check the Configure file for some examples of device-specific setups
20 # Berkeley flavors of Unix should include -DBSD in the CFLAGS. Pick
21 # a lock method... either -DLOCKF, -DFLOCK, or -DFCNTL and put that
22 # string in the CFLAGS line below.
24 # User specified flags
35 # do not edit below this line
36 # =============================================================================
40 top_srcdir=@top_srcdir@
45 exec_prefix = @exec_prefix@
49 sysconfdir = @sysconfdir@
50 datarootdir = @datarootdir@
55 MYCXXFLAGS = @CXXFLAGS@
58 DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)\" $(HOST_ID)
63 MACHDEPLIBS = @MACHDEPLIBS@
67 INSTALL_PROGRAM = @INSTALL_PROGRAM@
68 INSTALL_DATA = @INSTALL_DATA@
69 INSTALL_INFO = @INSTALL_INFO@
75 MAN1 = floppyd.1 floppyd_installtest.1 mattrib.1 mbadblocks.1 mcat.1 \
76 mcd.1 mcopy.1 mdel.1 mdeltree.1 mdir.1 mdu.1 mformat.1 \
77 minfo.1 mkmanifest.1 mlabel.1 mmd.1 mmount.1 mmove.1 mpartition.1 \
78 mrd.1 mren.1 mshortname.1 mshowfat.1 mtoolstest.1 mtools.1 mtype.1 \
82 MAN1DIR = $(DESTDIR)$(mandir)/man${MAN1EXT}
85 MAN5DIR = $(DESTDIR)$(mandir)/man${MAN5EXT}
87 # objects for building mtools
88 OBJS_MTOOLS = buffer.o charsetConv.o codepages.o config.o copyfile.o \
89 device.o devices.o dirCache.o directory.o direntry.o dos2unix.o \
90 expand.o fat.o fat_free.o file.o file_name.o force_io.o hash.o init.o \
91 lba.o llong.o lockdev.o match.o mainloop.o mattrib.o mbadblocks.o \
92 mcat.o mcd.o mcopy.o mdel.o mdir.o mdoctorfat.o mdu.o \
93 mformat.o minfo.o misc.o missFuncs.o mk_direntry.o mlabel.o mmd.o \
94 mmount.o mmove.o mpartition.o mshortname.o mshowfat.o mzip.o mtools.o \
95 offset.o old_dos.o open_image.o patchlevel.o partition.o plain_io.o \
96 precmd.o privileges.o remap.o scsi_io.o scsi.o signal.o stream.o \
97 streamcache.o swap.o unix2dos.o unixdir.o tty.o vfat.o \
98 strtonum.o @FLOPPYD_IO_OBJ@ @XDF_IO_OBJ@
100 # objects for building mkmanifest
101 OBJS_MKMANIFEST = missFuncs.o mkmanifest.o misc.o patchlevel.o
103 # objects for building floppyd
104 OBJS_FLOPPYD = floppyd.o llong.o lockdev.o
106 # objects for building floppyd_installtest
107 OBJS_FLOPPYD_INSTALLTEST = floppyd_installtest.o misc.o expand.o \
108 privileges.o strtonum.o
110 SRCS = buffer.c codepages.c config.c copyfile.c device.c devices.c \
111 dirCache.c directory.c direntry.c dos2unix.c expand.c fat.c \
112 fat_free.c file.c file_name.c file_read.c force_io.c hash.c init.c \
113 lba.c lockdev.c match.c mainloop.c mattrib.c mbadblocks.c mcat.c \
114 mcd.c mcopy.c mdel.c mdir.c mdu.c mdoctorfat.c \
115 mformat.c minfo.c misc.c missFuncs.c mk_direntry.c mlabel.c mmd.c \
116 mmount.c mmove.c mpartition.c mshortname.c mshowfat.c mzip.c mtools.c \
117 offset.c old_dos.c open_image.c partition.c plain_io.c precmd.c \
118 privileges.c remap.c scsi_io.c scsi.c signal.c stream.c streamcache.c \
119 swap.c unix2dos.s unixdir.c tty.c vfat.c mkmanifest.c \
120 @FLOPPYD_IO_SRC@ @XDF_IO_SRC@
122 SCRIPTS = mcheck mxtar uz tgz mcomp amuFormat.sh
124 LINKS=mattrib mcat mcd mcopy mdel mdeltree mdir mdu \
125 mformat minfo mlabel mmd mmount mmove mpartition mrd mren mtype \
126 mtoolstest mshortname mshowfat mbadblocks mzip
128 X_CFLAGS = @X_CFLAGS@
130 X_EXTRA_LIBS = @X_EXTRA_LIBS@
131 X_PRE_LIBS = @X_PRE_LIBS@
132 CFLAGS = $(CPPFLAGS) $(DEFS) $(MYCFLAGS) -I. @extraincludedir@ -I@srcdir@ $(USERCFLAGS)
133 CXXFLAGS = $(CPPFLAGS) $(DEFS) $(MYCXXFLAGS) -I. @extraincludedir@ -I@srcdir@ $(USERCFLAGS)
134 LINK = $(CC) $(LDFLAGS) $(USERLDFLAGS) @extralibdir@
135 ALLLIBS = $(USERLDLIBS) $(MACHDEPLIBS) $(SHLIB) $(X_EXTRA_LIBS) $(LIBS)
136 X_LDFLAGS = $(X_EXTRA_LIBS) $(X_LIBS) @FLOPPYD_LIBS@ $(LIBS)
137 X_CCFLAGS = $(X_CFLAGS) $(CFLAGS)
139 all: mtools $(LINKS) mkmanifest @FLOPPYD@ mtools.1 mtools.5
142 $(CC) $(CFLAGS) -c $<
145 # $(CXX) $(CXXFLAGS) -c $<
147 mtools: $(OBJS_MTOOLS)
148 $(LINK) $(OBJS_MTOOLS) -o $@ $(ALLLIBS)
150 mkmanifest: $(OBJS_MKMANIFEST)
151 $(LINK) $(OBJS_MKMANIFEST) -o $@ $(ALLLIBS)
154 $(CC) $(X_CCFLAGS) -c $?
156 floppyd: $(OBJS_FLOPPYD)
157 $(LINK) $(OBJS_FLOPPYD) -o $@ $(X_LDFLAGS)
158 floppyd_installtest: $(OBJS_FLOPPYD_INSTALLTEST)
159 $(LINK) $(OBJS_FLOPPYD_INSTALLTEST) -o $@ $(ALLLIBS)
163 rm -f $@ && $(LN_S) mtools $@
166 -rm -f *~ *.orig *.o a.out core 2>/dev/null
169 -rm -f mtools $(LINKS) floppyd floppyd_installtest mkmanifest *.info* *.dvi *.html 2>/dev/null
173 -rm -f mtools.aux mtools.toc mtools.log
174 -rm -f mtools.cps mtools.pgs mtools.vrs
175 -rm -f mtools.cp mtools.fn mtools.ky
176 -rm -f mtools.pg mtools.tp mtools.vr
179 %.info: %.texi sysconfdir.texi
180 $(MAKEINFO) -I$(srcdir) $< --no-split --output=$@
183 %.dvi: %.texi sysconfdir.texi
191 %.pdf: %.texi sysconfdir.texi
194 mtools.1: mtools.tmpl.1 Makefile
195 sed "s%SYSCONFDIR%$(sysconfdir)/%g" $(srcdir)/mtools.tmpl.1 >mtools.1
197 mtools.5: mtools.tmpl.5 Makefile
198 sed "s%SYSCONFDIR%$(sysconfdir)/%g" $(srcdir)/mtools.tmpl.5 >mtools.5
201 echo "@set SYSCONFDIR $(sysconfdir)/" >sysconfdir.texi
203 html: mtools.html mtools_toc.html
204 %.html %_toc.html: %.texi sysconfdir.texi
207 # Don't cd, to avoid breaking install-sh references.
209 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(infodir)
210 if test -f mtools.info; then \
211 for i in mtools.info*; do \
212 $(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i; \
215 for i in $(srcdir)/mtools.info*; do \
216 $(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
219 if [ -n "$(INSTALL_INFO)" ] ; then \
220 $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/mtools.info; \
224 cd $(DESTDIR)$(infodir) && rm -f mtools.info*
226 install: $(DESTDIR)$(bindir)/mtools @BINFLOPPYD@ install-man install-links \
227 $(DESTDIR)$(bindir)/mkmanifest install-scripts install-info
229 uninstall: uninstall-bin uninstall-man uninstall-links \
232 distclean: clean texclean
233 rm -f config.cache config.h config.status config.log Makefile
234 maintainer-clean: distclean
237 $(DESTDIR)$(bindir)/floppyd: floppyd
238 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
239 $(INSTALL_PROGRAM) floppyd $(DESTDIR)$(bindir)/floppyd
241 $(DESTDIR)$(bindir)/floppyd_installtest: floppyd_installtest
242 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
243 $(INSTALL_PROGRAM) floppyd_installtest $(DESTDIR)$(bindir)/floppyd_installtest
245 $(DESTDIR)$(bindir)/mtools: mtools
246 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
247 $(INSTALL_PROGRAM) mtools $(DESTDIR)$(bindir)/mtools
249 $(DESTDIR)$(bindir)/mkmanifest: mkmanifest
250 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
251 $(INSTALL_PROGRAM) mkmanifest $(DESTDIR)$(bindir)/mkmanifest
253 #$(ETCDIR)/mtools: mtools.etc
254 # cp mtools.etc $(ETCDIR)/mtools
256 install-links: $(DESTDIR)$(bindir)/mtools
257 @for j in $(LINKS); do \
258 rm -f $(DESTDIR)$(bindir)/$$j ; \
259 $(LN_S) mtools $(DESTDIR)$(bindir)/$$j ; \
260 echo $(DESTDIR)$(bindir)/$$j ; \
263 ## "z" is the older version of "gz"; the name is just *too* short
264 install-scripts: $(DESTDIR)$(bindir)/mtools
265 @$(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
266 @for j in $(SCRIPTS) ; do \
267 $(INSTALL_PROGRAM) $(srcdir)/scripts/$$j $(DESTDIR)$(bindir)/$$j ; \
268 echo $(DESTDIR)$(bindir)/$$j ; \
270 rm -f $(DESTDIR)$(bindir)/lz
271 cd $(DESTDIR)$(bindir) && $(LN_S) uz lz
274 @$(top_srcdir)/mkinstalldirs $(MAN1DIR)
275 @for j in $(MAN1); do \
276 $(INSTALL_DATA) $(srcdir)/$$j $(MAN1DIR)/$$j ; \
277 echo $(MAN1DIR)/$$j ; \
279 @$(top_srcdir)/mkinstalldirs $(MAN5DIR)
280 @for j in $(MAN5); do \
281 $(INSTALL_DATA) $(srcdir)/$$j $(MAN5DIR)/$$j ; \
282 echo $(MAN5DIR)/$$j ; \
286 @for j in mtools mkmanifest; do \
287 rm -f $(DESTDIR)$(bindir)/$$j ; \
288 echo $(DESTDIR)$(bindir)/$$j ; \
292 @for j in $(SCRIPTS); do \
293 rm -f $(DESTDIR)$(bindir)/$$j ; \
294 echo $(DESTDIR)$(bindir)/$$j ; \
298 @for j in $(MAN1); do \
299 rm -f $(MAN1DIR)/$$j ; \
300 echo $(MAN1DIR)/$$j ; \
302 @for j in $(MAN5); do \
303 rm -f $(MAN5DIR)/$$j ; \
304 echo $(MAN5DIR)/$$j ; \
308 @for j in $(LINKS); \
309 do rm -f $(DESTDIR)$(bindir)/$$j ; \
310 echo $(DESTDIR)$(bindir)/$$j ; \
314 makedepend -- $(CFLAGS) -- $^
317 echo No self tests included
318 # check target needed even if empty, in order to make life easier for
319 # automatic tools to install GNU soft
322 # DO NOT DELETE THIS LINE -- make depend depends on it.