blob: a71057bfb4836b58e412ff732b29e198164f1a5b [file] [log] [blame]
# $Id$
#
# 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!
#
# 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 and
# placing it in a libyasm subdirectory.
CFLAGS=-DHAVE_CONFIG_H -DWIN32 -IMkfiles -I. -Ifrontends/yasm
CC=gcc
all: yasm
LIBYASM_OBJS= \
libyasm/arch.o \
libyasm/assocdat.o \
libyasm/bitvect.o \
libyasm/bytecode.o \
libyasm/errwarn.o \
libyasm/expr.o \
libyasm/file.o \
libyasm/floatnum.o \
libyasm/hamt.o \
libyasm/intnum.o \
libyasm/linemgr.o \
libyasm/mergesort.o \
libyasm/objfmt.o \
libyasm/section.o \
libyasm/strcasecmp.o \
libyasm/strsep.o \
libyasm/symrec.o \
libyasm/valparam.o \
libyasm/xmalloc.o \
libyasm/xstrdup.o
MODULES_ARCH_X86_OBJS= \
modules/arch/x86/x86arch.o \
modules/arch/x86/x86bc.o \
modules/arch/x86/x86expr.o \
x86id.o
MODULES_ARCH_LC3B_OBJS= \
modules/arch/lc3b/lc3barch.o \
modules/arch/lc3b/lc3bbc.o \
lc3bid.o
MODULES_ARCH_OBJS= \
$(MODULES_ARCH_X86_OBJS) \
$(MODULES_ARCH_LC3B_OBJS)
MODULES_DBGFMTS_OBJS= \
modules/dbgfmts/null/null-dbgfmt.o
MODULES_LISTFMTS_OBJS= \
modules/listfmts/nasm/nasm-listfmt.o
MODULES_OBJFMTS_OBJS= \
modules/objfmts/dbg/dbg-objfmt.o \
modules/objfmts/bin/bin-objfmt.o \
modules/objfmts/coff/coff-objfmt.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/xdf/xdf-objfmt.o
MODULES_OPTIMIZERS_OBJS= \
modules/optimizers/basic/basic-optimizer.o
MODULES_PARSERS_OBJS= \
modules/parsers/nasm/nasm-parser.o \
nasm-bison.o \
nasm-token.o
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 \
nasm-macros.o
MODULES_PREPROCS_RAW_OBJS = \
modules/preprocs/raw/raw-preproc.o \
MODULES_PREPROCS_OBJS = \
$(MODULES_PREPROCS_NASM_OBJS) \
$(MODULES_PREPROCS_RAW_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 \
Mkfiles/vc/yasm-module.o \
frontends/yasm/yasm-options.o \
$(LIBYASM_OBJS) \
$(MODULES_OBJS)
yasm: $(YASM_OBJS)
$(CC) -o yasm $(YASM_OBJS)
.c.o:
$(CC) -c $(CFLAGS) -o $@ $<