# $IdPath$ # # Ultra-flat Makefile "prototype" for non-Unix platforms. # Does NOT depend on or use configure. # # Works for simple build but *not* for development (no clean, dist, etc). # Also, WARNING, no header dependencies are included! # # Problem to fix: to simplify this file, we probably want subdir Makefiles # included into this one? But include directives vary between Make versions. # Should bison/flex/perl rules even be included in this if it's not for # development use? # # NOTE: Needs a valid config.h for the platform being compiled on. # # This file should be customized to particular platforms by changing CC and # CFLAGS appropriately, along with writing a config.h for the platform. CFLAGS=-DHAVE_CONFIG_H -IMkfiles -I. -Isrc -Isrc/arch/x86 CC=gcc BISON=bison FLEX=flex PERL=perl all: src/yasm YASM_BASE_OBJS= \ src/bytecode.o \ src/expr.o \ src/symrec.o \ src/globals.o \ src/file.o \ src/section.o \ src/arch.o \ src/objfmt.o \ src/preproc.o \ src/parser.o \ src/intnum.o \ src/floatnum.o \ src/hamt.o \ src/bitvect.o \ src/valparam.o \ src/xmalloc.o \ src/xstrdup.o \ src/strcasecmp.o YASM_ARCH_OBJS= \ src/arch/x86/x86arch.o \ src/arch/x86/x86bc.o \ src/arch/x86/x86expr.o YASM_PARSER_OBJS= \ src/parsers/nasm/nasm-parser.o \ nasm-bison.o \ nasm-token.o YASM_PREPROC_OBJS= \ src/preprocs/raw/raw-preproc.o \ src/preprocs/yapp/yapp-preproc.o \ yapp-token.o YASM_OPTIMIZER_OBJS= \ src/optimizers/basic/basic-optimizer.o YASM_OBJFMT_OBJS= \ src/objfmts/dbg/dbg-objfmt.o \ src/objfmts/bin/bin-objfmt.o YASM_OBJS= \ src/main.o \ src/errwarn.o \ src/options.o \ $(YASM_BASE_OBJS) \ $(YASM_ARCH_OBJS) \ $(YASM_PARSER_OBJS) \ $(YASM_PREPROC_OBJS) \ $(YASM_OPTIMIZER_OBJS) \ $(YASM_OBJFMT_OBJS) \ mergesort.o src/yasm: $(YASM_OBJS) $(CC) -o src/yasm $(YASM_OBJS) # This is broken: it produces an invalid bison.h nasm-bison.c: nasm-bison.y $(BISON) -d --name-prefix=nasm_parser_ -o $@ $< nasm-token.c: nasm-token.l $(FLEX) -Pnasm_parser_ -o$@ $< nasm-bison.y nasm-token.l: src/arch/x86/instrs.dat src/parsers/nasm/bison.y.in src/parsers/nasm/token.l.in src/parsers/nasm/gen_instr.pl $(PERL) src/parsers/nasm/gen_instr.pl -i src/arch/x86/instrs.dat -t nasm-token.l -g nasm-bison.y yapp-token.c: src/preprocs/yapp/yapp-token.l $(FLEX) -Pyapp_parser_ -o$@ $< .c.o: $(CC) -c $(CFLAGS) -o $@ $<