# $Id: Makefile.dj 2284 2010-02-06 09:27:32Z peter $
#
# Ultra-flat Makefile for DJGPP (also works for Cygwin).
# 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!
#
# How to compile:
#  make -fMkfiles/Makefile.dj

CFLAGS=-DHAVE_CONFIG_H -IMkfiles/dj -O -I.
CC?=gcc
BUILDCC?=$(CC)

all: yasm ytasm vsyasm

LIBYASM_OBJS= \
 libyasm/assocdat.o \
 libyasm/bitvect.o \
 libyasm/bc-align.o \
 libyasm/bc-data.o \
 libyasm/bc-incbin.o \
 libyasm/bc-org.o \
 libyasm/bc-reserve.o \
 libyasm/bytecode.o \
 libyasm/errwarn.o \
 libyasm/expr.o \
 libyasm/file.o \
 libyasm/floatnum.o \
 libyasm/hamt.o \
 libyasm/insn.o \
 libyasm/intnum.o \
 libyasm/inttree.o \
 libyasm/linemap.o \
 libyasm/md5.o \
 libyasm/mergesort.o \
 libyasm/phash.o \
 libyasm/section.o \
 libyasm/strcasecmp.o \
 libyasm/strsep.o \
 libyasm/symrec.o \
 libyasm/valparam.o \
 libyasm/value.o \
 libyasm/xmalloc.o \
 libyasm/xstrdup.o \
 module.o

MODULES_ARCH_X86_OBJS= \
 modules/arch/x86/x86arch.o \
 modules/arch/x86/x86bc.o \
 modules/arch/x86/x86expr.o \
 modules/arch/x86/x86id.o \
 x86cpu.o \
 x86regtmod.o
YASM_MODULES=arch_x86

MODULES_ARCH_LC3B_OBJS= \
 modules/arch/lc3b/lc3barch.o \
 modules/arch/lc3b/lc3bbc.o \
 lc3bid.o
YASM_MODULES+=arch_lc3b

MODULES_ARCH_OBJS= \
 $(MODULES_ARCH_X86_OBJS) \
 $(MODULES_ARCH_LC3B_OBJS)

MODULES_DBGFMTS_OBJS= \
 modules/dbgfmts/null/null-dbgfmt.o \
 modules/dbgfmts/stabs/stabs-dbgfmt.o \
 modules/dbgfmts/codeview/cv-dbgfmt.o \
 modules/dbgfmts/codeview/cv-symline.o \
 modules/dbgfmts/codeview/cv-type.o \
 modules/dbgfmts/dwarf2/dwarf2-dbgfmt.o \
 modules/dbgfmts/dwarf2/dwarf2-line.o \
 modules/dbgfmts/dwarf2/dwarf2-info.o \
 modules/dbgfmts/dwarf2/dwarf2-aranges.o
YASM_MODULES+=dbgfmt_null
YASM_MODULES+=dbgfmt_stabs
YASM_MODULES+=dbgfmt_cv8
YASM_MODULES+=dbgfmt_dwarf2

MODULES_LISTFMTS_OBJS= \
 modules/listfmts/nasm/nasm-listfmt.o
YASM_MODULES+=listfmt_nasm

MODULES_OBJFMTS_OBJS= \
 modules/objfmts/dbg/dbg-objfmt.o \
 modules/objfmts/bin/bin-objfmt.o \
 modules/objfmts/coff/coff-objfmt.o \
 modules/objfmts/coff/win64-except.o \
 modules/objfmts/elf/elf.o \
 modules/objfmts/elf/elf-x86-x86.o \
 modules/objfmts/elf/elf-x86-amd64.o \
 modules/objfmts/elf/elf-objfmt.o \
 modules/objfmts/macho/macho-objfmt.o \
 modules/objfmts/rdf/rdf-objfmt.o \
 modules/objfmts/xdf/xdf-objfmt.o
YASM_MODULES+=objfmt_dbg
YASM_MODULES+=objfmt_bin objfmt_dosexe
YASM_MODULES+=objfmt_coff objfmt_win32 objfmt_win64 objfmt_x64
YASM_MODULES+=objfmt_elf objfmt_elf32 objfmt_elf64
YASM_MODULES+=objfmt_macho objfmt_macho32 objfmt_macho64
YASM_MODULES+=objfmt_rdf
YASM_MODULES+=objfmt_xdf

MODULES_PARSERS_OBJS= \
 modules/parsers/nasm/nasm-parser.o \
 modules/parsers/nasm/nasm-parse.o \
 nasm-token.o \
 modules/parsers/gas/gas-parser.o \
 modules/parsers/gas/gas-parse-intel.o \
 modules/parsers/gas/gas-parse.o \
 gas-token.o
YASM_MODULES+=parser_nasm parser_tasm
YASM_MODULES+=parser_gas parser_gnu

MODULES_PREPROCS_NASM_OBJS= \
 modules/preprocs/nasm/nasm-eval.o \
 modules/preprocs/nasm/nasm-pp.o \
 modules/preprocs/nasm/nasm-preproc.o \
 modules/preprocs/nasm/nasmlib.o
YASM_MODULES+=preproc_nasm preproc_tasm

MODULES_PREPROCS_RAW_OBJS = \
 modules/preprocs/raw/raw-preproc.o
YASM_MODULES+=preproc_raw

MODULES_PREPROCS_CPP_OBJS = \
 modules/preprocs/cpp/cpp-preproc.o
YASM_MODULES+=preproc_cpp

MODULES_PREPROCS_GAS_OBJS = \
 modules/preprocs/gas/gas-eval.o \
 modules/preprocs/gas/gas-preproc.o
YASM_MODULES+=preproc_gas

MODULES_PREPROCS_OBJS = \
 $(MODULES_PREPROCS_NASM_OBJS) \
 $(MODULES_PREPROCS_RAW_OBJS) \
 $(MODULES_PREPROCS_CPP_OBJS) \
 $(MODULES_PREPROCS_GAS_OBJS)

MODULES_OBJS = \
 $(MODULES_ARCH_OBJS) \
 $(MODULES_DBGFMTS_OBJS) \
 $(MODULES_LISTFMTS_OBJS) \
 $(MODULES_OBJFMTS_OBJS) \
 $(MODULES_OPTIMIZERS_OBJS) \
 $(MODULES_PARSERS_OBJS) \
 $(MODULES_PREPROCS_OBJS)

YASM_OBJS= \
 frontends/yasm/yasm.o \
 frontends/yasm/yasm-options.o \
 $(LIBYASM_OBJS) \
 $(MODULES_OBJS)

YTASM_OBJS= \
 frontends/tasm/tasm.o \
 frontends/tasm/tasm-options.o \
 $(LIBYASM_OBJS) \
 $(MODULES_OBJS)

VSYASM_OBJS= \
 frontends/vsyasm/vsyasm.o \
 frontends/yasm/yasm-options.o \
 $(LIBYASM_OBJS) \
 $(MODULES_OBJS)

genstring: genstring.c
	$(BUILDCC) -o $@ $<

license.c: COPYING genstring
	./genstring license_msg $@ COPYING

frontends/yasm/yasm.c: license.c

genmacro: tools/genmacro/genmacro.c
	$(BUILDCC) -o $@ $<

nasm-version.c: version.mac genmacro
	./genmacro $@ nasm_version_mac version.mac

modules/preprocs/nasm/nasm-pp.c: nasm-version.c

nasm-macros.c: modules/parsers/nasm/nasm-std.mac genmacro
	./genmacro $@ nasm_standard_mac modules/parsers/nasm/nasm-std.mac

modules/parsers/nasm/nasm-parser.c: nasm-macros.c

win64-nasm.c: modules/objfmts/coff/win64-nasm.mac genmacro
	./genmacro $@ win64_nasm_stdmac modules/objfmts/coff/win64-nasm.mac
win64-gas.c: modules/objfmts/coff/win64-gas.mac genmacro
	./genmacro $@ win64_gas_stdmac modules/objfmts/coff/win64-gas.mac

modules/objfmts/coff/coff-objfmt.c: win64-nasm.c win64-gas.c

genversion: modules/preprocs/nasm/genversion.c
	$(BUILDCC) -IMkfiles/dj -o $@ $<

version.mac: genversion
	./genversion $@

genmodule: libyasm/genmodule.c
	$(BUILDCC) -o $@ $<

module.c: libyasm/module.in genmodule
	./genmodule libyasm/module.in Mkfiles/Makefile.dj

x86insn_nasm.gperf x86insn_gas.gperf x86insns.c: modules/arch/x86/gen_x86_insn.py
	# ignore error in case python is not installed
	-python modules/arch/x86/gen_x86_insn.py

x86insn_nasm.c: x86insn_nasm.gperf genperf
	./genperf x86insn_nasm.gperf $@

x86insn_gas.c: x86insn_gas.gperf genperf
	./genperf x86insn_gas.gperf $@

x86cpu.c: modules/arch/x86/x86cpu.gperf genperf
	./genperf modules/arch/x86/x86cpu.gperf $@

x86regtmod.c: modules/arch/x86/x86regtmod.gperf genperf
	./genperf modules/arch/x86/x86regtmod.gperf $@

modules/arch/x86/x86id.c: x86insn_nasm.c x86insn_gas.c x86insns.c

lc3bid.c: modules/arch/lc3b/lc3bid.re re2c
	./re2c -s -o $@ modules/arch/lc3b/lc3bid.re

gas-token.c: modules/parsers/gas/gas-token.re re2c
	./re2c -b -o $@ modules/parsers/gas/gas-token.re

nasm-token.c: modules/parsers/nasm/nasm-token.re re2c
	./re2c -b -o $@ modules/parsers/nasm/nasm-token.re

RE2C_SRCS= \
	tools/re2c/main.c \
	tools/re2c/code.c \
	tools/re2c/dfa.c \
	tools/re2c/parser.c \
	tools/re2c/actions.c \
	tools/re2c/scanner.c \
	tools/re2c/mbo_getopt.c \
	tools/re2c/substr.c \
	tools/re2c/translate.c

re2c: $(RE2C_SRCS)
	$(BUILDCC) -I. -o re2c $(RE2C_SRCS)

GENPERF_SRCS= \
	tools/genperf/genperf.c \
	tools/genperf/perfect.c \
	libyasm/phash.c \
	libyasm/xmalloc.c \
	libyasm/xstrdup.c

genperf: $(GENPERF_SRCS)
	$(BUILDCC) -I. -o genperf $(GENPERF_SRCS)

yasm: $(YASM_OBJS)
	$(CC) -o yasm $(YASM_OBJS)

ytasm: $(YTASM_OBJS)
	$(CC) -o ytasm $(YTASM_OBJS)

vsyasm: $(VSYASM_OBJS)
	$(CC) -o vsyasm $(VSYASM_OBJS)

.c.o:
	$(CC) -c $(CFLAGS) -o $@ $<

