Newer
Older
Scratch / mobius / src / drivers / make.driver
@Christopher W. Olsen Christopher W. Olsen on 25 Oct 2019 979 bytes Scratch
ROOT=		f:/projects/mobius
BIN=		$(ROOT)/bin
LIB=		$(ROOT)/lib
CPPFLAGS+=	-g -D__MOBIUS__ -DKERNEL -Wall -nostdinc -I$(ROOT)/include -I.
CC=		gcc
NASM=		nasm
LDFLAGS+=	-g --subsystem native --entry _drvInit@4 \
	--image-base `cat .base`
LIBS+=		$(LIB)/kernel.lib
DEF=		$(EXP:.exp=.def)

%.d:	%.c
	$(CC) $(CPPFLAGS) -M -c $< -o $@
%.o:	%.c
	$(CC) $(CPPFLAGS) -c $< -o $@
%.o:	%.cpp
	$(CC) $(CPPFLAGS) -c $< -o$@
%.d:	%.cpp
	$(CC) $(CPPFLAGS) -MD -c $<
%.d:	%.asm
	$(NASM) -M $< > $@
%.o:	%.asm
	$(NASM) -f win32 -o $@ $<

all:	$(TARGET) $(IMP)

.base:	$(BIN)/coffbase.txt Makefile
	$(BIN)/base.pl $(BASE) < $(BIN)/coffbase.txt > .base

$(TARGET):	$(OBJS) $(EXP) .base
	ld -o $(TARGET) $(LDFLAGS) \
			$(OBJS) \
			$(EXP) \
			$(LIBS)

%.exp: %.def
	dlltool -e $@ -m i386 --input-def $< -D $(@:.exp=.drv)

$(IMP): $(DEF)
#	lib /def:$< /out:$@ /nologo /machine:ix86
	dlltool -m i386 --input-def $(DEF) --output-lib $(IMP)

clean:
	rm .base
	rm $(OBJS)
	rm $(TARGET)
	rm $(OBJS:.o=.d)