.1.man:
$(NROFF) -man $< > $@
+#--- Begin File Lists ---#
NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) \
float.$(O) insnsa.$(O) insnsb.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) \
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) \
insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O)
+#--- End File Lists ---#
all: nasm$(X) ndisasm$(X) nasm.man ndisasm.man
cd rdoff && $(MAKE) all
# it's expected to be invoked manually.
#
alldeps: perlreq
+ $(PERL) syncfiles.pl Makefile.in Mkfiles/*.mak
$(PERL) mkdep.pl -M Makefile.in Mkfiles/*.mak -- \
. output lib
./config.status
.c.obj:
$(CC) /c $(ALL_CFLAGS) /Fo$@ $<
+#--- Begin File Lists ---#
+# Edit in Makefile.in, not here!
NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) \
float.$(O) insnsa.$(O) insnsb.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) \
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) \
insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O)
+#--- End File Lists ---#
all: nasm$(X) ndisasm$(X)
rem cd rdoff && $(MAKE) all
-# -* makefile -*- GNU Makefile for NetWare target
+# -*- makefile -*- GNU Makefile for NetWare target
PROOT=.
OBJDIR=release
O = o
-NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) \
- float.$(O) insnsa.$(O) insnsb.$(O) \
- assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) \
- outform.$(O) output/outbin.$(O) \
- output/outaout.$(O) output/outcoff.$(O) \
- output/outelf32.$(O) output/outelf64.$(O) \
- output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
- output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
- preproc.$(O) quote.$(O) pptok.$(O) macros.$(O) \
- listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) strfunc.$(O) \
- tokhash.$(O) regvals.$(O) regflags.$(O)
-
-NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) \
- insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O)
+#--- Begin File Lists ---#
+# Edit in Makefile.in, not here!
+NASM = nasm.o nasmlib.o raa.o saa.o \
+ float.o insnsa.o insnsb.o \
+ assemble.o labels.o hashtbl.o crc64.o parser.o \
+ outform.o output/outbin.o \
+ output/outaout.o output/outcoff.o \
+ output/outelf32.o output/outelf64.o \
+ output/outobj.o output/outas86.o output/outrdf2.o \
+ output/outdbg.o output/outieee.o output/outmacho.o \
+ preproc.o quote.o pptok.o macros.o \
+ listing.o eval.o exprlib.o stdscan.o strfunc.o \
+ tokhash.o regvals.o regflags.o
+
+NDISASM = ndisasm.o disasm.o sync.o nasmlib.o \
+ insnsd.o insnsb.o insnsn.o regs.o regdis.o
+#--- End File Lists ---#
NASM_OBJ = $(addprefix $(OBJDIR)/,$(notdir $(NASM))) $(EOLIST)
NDIS_OBJ = $(addprefix $(OBJDIR)/,$(notdir $(NDISASM))) $(EOLIST)
$(CC) -c $(ALL_CFLAGS) -fo=$^@ $[@
# Note: wcl386 is broken if forward slashes are used as path separators.
+#--- Begin File Lists ---#
+# Edit in Makefile.in, not here!
NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) &
float.$(O) insnsa.$(O) insnsb.$(O) &
assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) &
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) &
insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O)
+#--- End File Lists ---#
what: .SYMBOLIC
@echo Please build "dos", "win32" or "os2"
.c.$(O):
$(CC) -c $(ALL_CFLAGS) -fo=$@ $<
+#--- Begin File Lists ---#
+# Edit in Makefile.in, not here!
NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) \
float.$(O) insnsa.$(O) insnsb.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) \
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) \
insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O)
+#--- End File Lists ---#
what:
@echo 'Please build "dos", "win32" or "os2"'
--- /dev/null
+#!/usr/bin/perl
+#
+# Sync the output file list between Makefiles
+# Use the mkdep.pl parameters to get the filename syntax
+#
+# The first file is the source file; the other ones target.
+# The initial file is assumed to be in Unix notation.
+#
+%def_hints = ('object-ending' => '.o',
+ 'path-separator' => '/',
+ 'continuation' => "\\");
+
+sub do_transform($$) {
+ my($l, $h) = @_;
+
+ $l =~ s/\x01/$$h{'object-ending'}/g;
+ $l =~ s/\x02/$$h{'path-separator'}/g;
+ $l =~ s/\x03/$$h{'continuation'}/g;
+
+ return $l;
+}
+
+@file_list = ();
+
+$first = 1;
+$first_file = $ARGV[0];
+die unless (defined($first_file));
+
+foreach $file (@ARGV) {
+ open(FILE, "< $file\0") or die;
+
+ # First, read the syntax hints
+ %hints = %def_hints;
+ while (defined($line = <FILE>)) {
+ if ($line =~ /^\#\s+\@(\S+)\:\s*\"([^\"]+)\"/) {
+ $hints{$1} = $2;
+ }
+ }
+
+ # Read and process the file
+ seek(FILE,0,0);
+ @lines = ();
+ $processing = 0;
+ while (defined($line = <FILE>)) {
+ chomp $line;
+ if ($processing) {
+ if ($line eq '#--- End File Lists ---#') {
+ push(@lines, $line."\n");
+ $processing = 0;
+ } elsif ($first) {
+ my $xl = $line;
+ my $oe = "\Q$hints{'object-ending'}";
+ my $ps = "\Q$hints{'path-separator'}";
+ my $cn = "\Q$hints{'continuation'}";
+
+ $xl =~ s/${oe}(\s|$)/\x01$1/g;
+ $xl =~ s/${ps}/\x02/g;
+ $xl =~ s/${cn}$/\x03/;
+ push(@file_list, $xl);
+ push(@lines, $line);
+ }
+ } else {
+ push(@lines, $line."\n");
+ if ($line eq '#--- Begin File Lists ---#') {
+ $processing = 1;
+ if (!$first) {
+ push(@lines, "# Edit in $first_file, not here!\n");
+ foreach $l (@file_list) {
+ push(@lines, do_transform($l, \%hints)."\n");
+ }
+ }
+ }
+ }
+ }
+ close(FILE);
+
+ # Write the file back out
+ if (!$first) {
+ open(FILE, "> $file\0") or die;
+ print FILE @lines;
+ close(FILE);
+ }
+
+ undef @lines;
+ $first = 0;
+}