freebsd-dev/usr.sbin/mkdosfs/Makefile
Joerg Wunsch 828c68cf7a mkdosfs -- a tool to create an MS-DOS file system on a device or file.
Since msdosfs is part of the base system, it's not wise to rely on
something like mtools to provide this functionality.

This utility is the agreed fix for PR # misc/804      fdformat did not ...
1995-11-05 16:02:04 +00:00

60 lines
1.5 KiB
Makefile

# $Id$
#
PROG= mkdosfs
CFLAGS+= -Wall
###################################################################
#
# Everything below is solely intented for maintenance.
# As you can see, it requires as86/ld86 from the ``bcc'' package.
#
# For this reason, the bootcode.h target puts the result into
# ${.CURDIR}
AS86= as86
LD86= ld86
AS86FLAGS= -0
LD86FLAGS= -0 -s
CLEANFILES+= *.obj *.bin *.com
.SUFFIXES: .asm .obj .bin .com
.asm.obj:
${AS86} ${AS86FLAGS} -o ${.TARGET} ${.IMPSRC}
.obj.bin:
${LD86} ${LD86FLAGS} -T 0x7c00 -o ${.PREFIX}.tmp ${.IMPSRC}
dd bs=32 skip=1 of=${.TARGET} if=${.PREFIX}.tmp
rm -f ${.PREFIX}.tmp
# .com file is just for testing
.obj.com:
${LD86} ${LD86FLAGS} -T 0x100 -o ${.PREFIX}.tmp ${.IMPSRC}
dd bs=32 skip=1 of=${.TARGET} if=${.PREFIX}.tmp
rm -f ${.PREFIX}.tmp
## Do NOT depend this on bootcode.bin unless you've installed the
## bcc package!
bootcode.h: ## bootcode.bin
@echo converting bootcode.bin into bootcode.h...
@perl -e 'if(read(STDIN,$$buf,512)<512) { \
die "Read error on .bin file\n"; \
} \
@arr = unpack("C*",$$buf); \
print "#ifndef BOOTCODE_H\n"; \
print "#define BOOTCODE_H 1\n\n"; \
print "/*\n * This file has been generated\n"; \
print " * automatically. Do not edit.\n */\n\n"; \
print "static unsigned char bootcode[512] = {\n"; \
for($$i=0; $$i<512; $$i++) { \
printf "0x%02x, ",$$arr[$$i]; \
if($$i % 12 == 11) {print "\n";} \
} \
print "};\n\n"; \
print "#endif /* BOOTCODE_H */\n";' \
< bootcode.bin > ${.CURDIR}/bootcode.h
.include <bsd.prog.mk>