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