1#  Copyright 1996-2004,2006-2009 Alain Knaff.
2#  This file is part of mtools.
3#
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.
8#
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.
13#
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/>.
16#
17#       Makefile for Mtools
18#
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.
23
24include ../config.mk
25include ../config.in
26DESTDIR = $(TARGETDIR)
27
28# User specified flags
29USERCFLAGS = 
30USERLDFLAGS =
31USERLDLIBS =
32
33MAKEINFO = makeinfo
34TEXI2DVI = texi2dvi
35TEXI2PDF = texi2pdf
36TEXI2HTML = texi2html
37
38
39# do not edit below this line
40# =============================================================================
41
42SHELL = /bin/sh
43
44top_srcdir=.
45srcdir=.
46
47
48#prefix      = /usr/local
49prefix      = /usr
50exec_prefix = ${prefix}
51bindir      = ${exec_prefix}/bin
52infodir     = ${datarootdir}/info
53mandir      = ${datarootdir}/man
54sysconfdir  = ${prefix}/etc
55datarootdir = ${prefix}/share
56
57ifeq ($(LINUXDIR), $(SRCBASE)/linux/linux-2.6)
58CC         = mipsel-linux-uclibc-gcc
59STRIP      = mipsel-linux-uclibc-strip
60else
61CC         = mipsel-uclibc-gcc
62STRIP      = mipsel-uclibc-strip
63endif
64CXX        = @CXX@
65MYCFLAGS   = -g -O2 -Wall
66MYCXXFLAGS = @CXXFLAGS@
67CPPFLAGS   = 
68HOST_ID    = -DCPU_i686 -DVENDOR_pc -DOS_linux_gnu
69DEFS       = -DHAVE_CONFIG_H -DSYSCONFDIR=\"$(sysconfdir)\" $(HOST_ID)
70
71LDFLAGS     = 
72#LIBS        = -lbsd -lnsl 
73LIBS        = -lnsl 
74SHLIB       = 
75MACHDEPLIBS = 	
76LN_S        = ln -s
77
78INSTALL         = /usr/bin/install -c
79INSTALL_PROGRAM = ${INSTALL}
80INSTALL_DATA    = ${INSTALL} -m 644
81INSTALL_INFO	= 
82
83.SUFFIXES:
84.SUFFIXES: .o .c
85.SUFFIXES: .o .c
86
87MAN1 = floppyd.1 floppyd_installtest.1 mattrib.1 mbadblocks.1 mcat.1 mcd.1 \
88mclasserase.1 mcopy.1 mdel.1 mdeltree.1 mdir.1 mdu.1 mformat.1  minfo.1 \
89mkmanifest.1 mlabel.1 mmd.1 mmount.1 mmove.1 mpartition.1 \
90mrd.1 mren.1 mshowfat.1 mtoolstest.1 mtools.1 mtype.1 mzip.1
91MAN1EXT	= 1
92MAN1DIR	= $(DESTDIR)$(mandir)/man${MAN1EXT}
93MAN5	= mtools.5
94MAN5EXT	= 5
95MAN5DIR	= $(DESTDIR)$(mandir)/man${MAN5EXT}
96
97# all files in this directory included in the distribution
98DIST = \
99COPYING Changelog INSTALL Makefile Makefile.in README Release.notes \
100buffer.c buffer.h charsetConv.c codepage.h codepages.c config.c \
101config.guess config.h.in config.log config.sub configure configure.in \
102copyfile.c devices.c devices.h dirCache.c dirCache.h directory.c direntry.c \
103expand.c fat.c \
104fat_free.c file.c file.h file_name.h file_name.c files filter.c floppyd.1 \
105floppyd.c floppyd_io.c floppyd_io.h force_io.c fs.h fsP.h \
106getopt.h hash.c htable.h init.c llong.c mainloop.c match.c mattrib.1 \
107mattrib.c mbadblocks.1 mbadblocks.c mcat.1 mcat.c mcd.1 mcd.c mclasserase.c \
108mcopy.1 \
109mcopy.c mdel.1 mdel.c mdeltree.1 mdir.1 mdir.c mdu.c mdu.1 mformat.1 \
110mformat.c minfo.c \
111misc.c tty.c scsi.c missFuncs.c mk_direntry.c mkmanifest.1 mkmanifest.c \
112mlabel.1 mlabel.c mmd.1 mmd.c mmount.1 mmount.c mmove.1 mmove.c \
113mpartition.1 mpartition.c mrd.1 \
114mren.1 msdos.h mshowfat.1 mtoolstest.1 mtools.1 mtools.5 mtools.c \
115mtools.conf mtools.h mtype.1 nameclash.h patchlevel.c \
116plain_io.c plain_io.h precmd.c privileges.c scripts signal.c stream.c stream.h \
117streamcache.c streamcache.h subdir.c sysincludes.h unixdir.c todo \
118vfat.c vfat.h xdf_io.c xdf_io.h
119
120OBJS1 = buffer.o charsetConv.o codepages.o config.o copyfile.o \
121devices.o dirCache.o directory.o direntry.o expand.o fat.o fat_free.o file.o  \
122file_name.o filter.o floppyd_io.o force_io.o hash.o init.o llong.o match.o \
123mainloop.o mattrib.o mbadblocks.o mcat.o mcd.o mclasserase.o mcopy.o mdel.o \
124mdir.o mdoctorfat.o mdu.o \
125mformat.o minfo.o misc.o missFuncs.o mk_direntry.o mlabel.o mmd.o mmount.o \
126mmove.o mpartition.o mshowfat.o mzip.o mtools.o patchlevel.o plain_io.o \
127precmd.o privileges.o scsi.o signal.o stream.o streamcache.o subdir.o \
128unixdir.o tty.o vfat.o xdf_io.o
129
130OBJS2 = missFuncs.o mkmanifest.o misc.o patchlevel.o
131
132SRCS3 = floppyd.c
133
134OBJS4 = floppyd_installtest.o misc.o expand.o privileges.o
135
136SRCS = buffer.c codepages.c config.c copyfile.c devices.c \
137dirCache.c directory.c direntry.c expand.c fat.c fat_free.c file.c file_name.c \
138file_read.c filter.c floppyd_io.c force_io.c hash.c init.c match.c mainloop.c \
139mattrib.c mbadblocks.c mcat.c mcd.c mclasserase.c mcopy.c mdel.c mdir.c \
140mdu.c mdoctorfat.c mformat.c minfo.c misc.c \
141missFuncs.c mk_direntry.c mlabel.c mmd.c mmount.c mmove.c mpartition.c \
142mshowfat.c mzip.c mtools.c plain_io.c precmd.c privileges.c scsi.o \
143signal.c stream.c streamcache.c subdir.c unixdir.c tty.o vfat.c \
144xdf_io.c mkmanifest.c
145
146
147SCRIPTS = mcheck mxtar uz tgz mcomp amuFormat.sh
148
149LINKS=mattrib mcat mcd mclasserase mcopy mdel mdeltree mdir mdu mformat minfo \
150mlabel mmd mmount mmove mpartition mrd mren mtype mtoolstest mshowfat \
151mbadblocks mzip
152
153X_CFLAGS = 
154X_LIBS = 
155X_EXTRA_LIBS = 
156X_PRE_LIBS =  -lSM -lICE
157CFLAGS = $(CPPFLAGS) $(DEFS) $(MYCFLAGS) -fno-strict-aliasing -I.  -I. $(USERCFLAGS)
158CXXFLAGS  = $(CPPFLAGS) $(DEFS) $(MYCXXFLAGS) -I.  -I. $(USERCFLAGS)
159LINK      = $(CC) $(LDFLAGS) $(USERLDFLAGS) 
160ALLLIBS   = $(USERLDLIBS) $(MACHDEPLIBS) $(SHLIB) $(LIBS)
161X_LDFLAGS = $(X_EXTRA_LIBS) $(X_LIBS) $(X_PRE_LIBS) -lXau -lX11 $(LIBS)
162X_CCFLAGS = $(X_CFLAGS) $(CFLAGS)
163
164#all:    mtools $(LINKS) mkmanifest floppyd floppyd_installtest
165all:    mtools $(LINKS)
166
167%.o: %.c
168	$(CC) $(CFLAGS) -c $<
169
170#%.o: %.cpp
171#	$(CXX) $(CXXFLAGS) -c $<
172
173mtools: $(OBJS1)
174	$(LINK) $(OBJS1) -o $@ $(ALLLIBS)
175
176mkmanifest: $(OBJS2)
177	$(LINK) $(OBJS2) -o $@ $(ALLLIBS)
178
179floppyd.o: floppyd.c
180	$(CC) $(X_CCFLAGS) -c $?
181
182floppyd: floppyd.o
183	$(LINK) $? -o $@ $(X_LDFLAGS)
184floppyd_installtest: $(OBJS4)
185	$(LINK) $(OBJS4) -o $@ $(ALLLIBS)
186
187
188$(LINKS): mtools
189	rm -f $@ && $(LN_S) mtools $@
190
191mostlyclean:
192	-rm -f *~ *.orig *.o a.out core 2>/dev/null
193
194clean:	mostlyclean
195	-rm -f mtools $(LINKS) floppyd floppyd_installtest mkmanifest *.info* *.dvi *.html 2>/dev/null
196
197
198texclean:
199	-rm -f mtools.aux mtools.toc mtools.log
200	-rm -f mtools.cps mtools.pgs mtools.vrs
201	-rm -f mtools.cp mtools.fn mtools.ky
202	-rm -f mtools.pg mtools.tp mtools.vr
203
204info: mtools.info
205%.info: %.texi
206	$(MAKEINFO) -I$(srcdir) $< --no-split --output=$@
207
208dvi: mtools.dvi
209%.dvi: %.texi
210	$(TEXI2DVI) $<
211
212ps: mtools.ps
213%.ps: %.dvi
214	dvips -f < $< > $@
215
216pdf: mtools.pdf
217%.pdf: %.texi
218	$(TEXI2PDF) $<
219
220
221html: mtools.html mtools_toc.html
222%.html %_toc.html: %.texi
223	$(TEXI2HTML) $<
224
225# Don't cd, to avoid breaking install-sh references.
226install-info: info
227	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(infodir)
228	if test -f mtools.info; then \
229	  for i in mtools.info*; do \
230	    $(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i; \
231	  done; \
232	else \
233	  for i in $(srcdir)/mtools.info*; do \
234	    $(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
235	  done; \
236	fi; \
237	if [ -n "$(INSTALL_INFO)" ] ; then \
238		$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/mtools.info; \
239	fi
240
241uninstall-info:
242	cd $(DESTDIR)$(infodir) && rm -f mtools.info*
243
244#install:	$(DESTDIR)$(bindir)/mtools $(DESTDIR)$(bindir)/floppyd $(DESTDIR)$(bindir)/floppyd_installtest install-man install-links 
245install:	$(DESTDIR)$(bindir)/mtools install-links
246
247uninstall:	uninstall-bin uninstall-man uninstall-links \
248		uninstall-scripts
249
250distclean: clean texclean
251	rm -f config.cache config.h config.status config.log Makefile
252maintainer-clean: distclean
253
254
255$(DESTDIR)$(bindir)/floppyd: floppyd
256	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
257	$(INSTALL_PROGRAM) floppyd $(DESTDIR)$(bindir)/floppyd
258
259$(DESTDIR)$(bindir)/floppyd_installtest: floppyd_installtest
260	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
261	$(INSTALL_PROGRAM) floppyd_installtest $(DESTDIR)$(bindir)/floppyd_installtest
262
263$(DESTDIR)$(bindir)/mtools: mtools
264	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
265	$(INSTALL_PROGRAM) mtools $(DESTDIR)$(bindir)/mtools
266	$(STRIP) $(DESTDIR)$(bindir)/mtools
267
268$(DESTDIR)$(bindir)/mkmanifest: mkmanifest
269	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
270	$(INSTALL_PROGRAM) mkmanifest $(DESTDIR)$(bindir)/mkmanifest
271
272#$(ETCDIR)/mtools: mtools.etc
273#	cp mtools.etc $(ETCDIR)/mtools
274
275install-links: $(DESTDIR)$(bindir)/mtools
276	@for j in $(LINKS); do \
277		rm -f $(DESTDIR)$(bindir)/$$j ; \
278		$(LN_S) mtools $(DESTDIR)$(bindir)/$$j ; \
279		echo $(DESTDIR)$(bindir)/$$j ; \
280	done
281
282## "z" is the older version of "gz"; the name is just *too* short
283install-scripts: $(DESTDIR)$(bindir)/mtools
284	@$(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
285	@for j in $(SCRIPTS) ; do \
286		$(INSTALL_PROGRAM) $(srcdir)/scripts/$$j $(DESTDIR)$(bindir)/$$j ; \
287		echo $(DESTDIR)$(bindir)/$$j ; \
288	done
289	rm -f $(DESTDIR)$(bindir)/lz
290	$(LN_S) uz $(DESTDIR)$(bindir)/lz
291
292install-man:
293	@$(top_srcdir)/mkinstalldirs $(MAN1DIR)
294	@for j in $(MAN1); do \
295		$(INSTALL_DATA) $(srcdir)/$$j $(MAN1DIR)/$$j ; \
296		echo $(MAN1DIR)/$$j ; \
297	done
298	@$(top_srcdir)/mkinstalldirs $(MAN5DIR)
299	@for j in $(MAN5); do \
300		$(INSTALL_DATA) $(srcdir)/$$j $(MAN5DIR)/$$j ; \
301		echo $(MAN5DIR)/$$j ; \
302	done
303
304uninstall-bin:
305	@for j in mtools mkmanifest; do \
306		rm -f $(DESTDIR)$(bindir)/$$j ; \
307		echo $(DESTDIR)$(bindir)/$$j ; \
308	done
309
310uninstall-scripts:
311	@for j in $(SCRIPTS); do \
312		rm -f $(DESTDIR)$(bindir)/$$j ; \
313		echo $(DESTDIR)$(bindir)/$$j ; \
314	done
315
316uninstall-man:
317	@for j in $(MAN1); do \
318		rm -f $(MAN1DIR)/$$j ; \
319		echo $(MAN1DIR)/$$j ; \
320	done
321	@for j in $(MAN5); do \
322		rm -f $(MAN5DIR)/$$j ; \
323		echo $(MAN5DIR)/$$j ; \
324	done
325
326uninstall-links:
327	@for j in $(LINKS); \
328		do rm -f $(DESTDIR)$(bindir)/$$j ; \
329		echo $(DESTDIR)$(bindir)/$$j ; \
330	done
331
332depend: $(SRCS)
333	makedepend -- $(CFLAGS) -- $^
334
335check:
336	echo No self tests included
337# check target needed even if empty, in order to make life easyer for
338# automatic tools to install GNU soft
339
340
341# DO NOT DELETE THIS LINE -- make depend depends on it.
342