61 lines
2 KiB
Makefile
61 lines
2 KiB
Makefile
# DVX Loader Makefile for DJGPP cross-compilation
|
|
#
|
|
# Builds the bootstrap loader (dvx.exe) that loads DXE modules.
|
|
# Links dvxPlatformDos.c directly -- the platform layer provides
|
|
# the DXE export table via platformRegisterDxeExports().
|
|
|
|
DJGPP_PREFIX = $(HOME)/djgpp/djgpp
|
|
DJGPP_LIBPATH = $(HOME)/claude/windriver/tools/lib
|
|
CC = $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-gcc
|
|
EXE2COFF = $(DJGPP_PREFIX)/i586-pc-msdosdjgpp/bin/exe2coff
|
|
CWSDSTUB = $(DJGPP_PREFIX)/i586-pc-msdosdjgpp/bin/CWSDSTUB.EXE
|
|
CFLAGS = -O2 -Wall -Wextra -Werror -Wno-type-limits -Wno-sign-compare -Wno-format-truncation -march=i486 -mtune=i586 -I../core -I../core/platform -I../tasks -I../core/thirdparty
|
|
LDFLAGS = -lm
|
|
|
|
OBJDIR = ../obj/loader
|
|
POBJDIR = ../obj/loader/platform
|
|
BINDIR = ../bin
|
|
|
|
SRCS = loaderMain.c
|
|
OBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(SRCS))
|
|
POBJS = $(POBJDIR)/dvxPlatformDos.o $(POBJDIR)/dvxPrefs.o $(OBJDIR)/dvxhlpc.o
|
|
TARGET = $(BINDIR)/dvx.exe
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(OBJS) $(POBJS) | $(BINDIR)
|
|
$(CC) $(CFLAGS) -o $@ $(OBJS) $(POBJS) $(LDFLAGS) -Wl,-Map=$(BINDIR)/dvx.map
|
|
$(EXE2COFF) $@
|
|
cat $(CWSDSTUB) $(BINDIR)/dvx > $@
|
|
rm -f $(BINDIR)/dvx
|
|
|
|
$(OBJDIR)/%.o: %.c | $(OBJDIR)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(POBJDIR)/dvxPlatformDos.o: ../core/platform/dvxPlatformDos.c | $(POBJDIR)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(POBJDIR)/dvxPrefs.o: ../core/dvxPrefs.c | $(POBJDIR)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(OBJDIR)/dvxhlpc.o: ../tools/dvxhlpc.c ../tools/hlpcCompile.h ../apps/dvxhelp/hlpformat.h | $(OBJDIR)
|
|
$(CC) $(CFLAGS) -DHLPC_NO_MAIN -c -o $@ ../tools/dvxhlpc.c
|
|
|
|
$(OBJDIR):
|
|
mkdir -p $(OBJDIR)
|
|
|
|
$(POBJDIR):
|
|
mkdir -p $(POBJDIR)
|
|
|
|
$(BINDIR):
|
|
mkdir -p $(BINDIR)
|
|
|
|
# Dependencies
|
|
$(OBJDIR)/loaderMain.o: loaderMain.c ../core/platform/dvxPlat.h ../core/dvxTypes.h
|
|
$(POBJDIR)/dvxPlatformDos.o: ../core/platform/dvxPlatformDos.c ../core/platform/dvxPlat.h ../core/dvxTypes.h ../core/dvxPal.h
|
|
$(POBJDIR)/dvxPrefs.o: ../core/dvxPrefs.c ../core/dvxPrefs.h
|
|
|
|
clean:
|
|
rm -f $(OBJS) $(POBJS) $(TARGET) $(BINDIR)/dvx.map
|