Makefile revision 677833bc953b6cb418c701facbdcf4aa18d6c44e
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# For debugging, don't delete intermediates
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovCHECKSIZE= { read d1; read d1 d2 d3 size d4; [ $$size -gt $(ROMLIMIT) ] &&\
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe { $(RM) $@; echo "ERROR: code size exceeds limit!"; exit 1; }; exit 0; }
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(BIN)/bios.o $(BIN)/console.o $(BIN)/memsizes.o $(BIN)/basemem.o \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# ROM loaders: ISA and PCI versions
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Variables xxx_ROMTYPE are defined by genrules.pl. ROMENTRY and
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# ROMEXIT will evaluate to give the correct objects to use.
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Target type for generic prf rules
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovTARGETTYPE=$(patsubst .%,%, $(suffix $(basename $@)))
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Other real-mode entry loaders
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Protected mode entry loaders
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri PankovBOBJS+= $(BIN)/elf.o $(BIN)/cpu.o $(BIN)/video_subr.o
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# ROM loaders
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(ISAPREFIX): arch/i386/prefix/romprefix.S $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(CPP) $(CFLAGS) $(LCONFIG) -Ui386 -D ASSEMBLY $< \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(PCIPREFIX): arch/i386/prefix/romprefix.S $(MAKEDEPS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(CPP) -DPCI_PNP_HEADER $(CFLAGS) $(LCONFIG) -Ui386 -D ASSEMBLY $< \
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Prefix splitters
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(BIN)/%prefix.entry.o: $(BIN)/%prefix.o $(MAKEDEPS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(BIN)/%prefix.exit.o: $(BIN)/%prefix.o $(MAKEDEPS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Generic prefix objects
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(HOST_CC) -O2 -DENCODE -DDECODE -DMAIN -DVERBOSE -DNDEBUG -DBITSIZE=32 -DENDIAN=0 -o $@ $<
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# Pattern Rules
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# General for compiling/assembly source files
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(CPP) $(CFLAGS) -Ui386 -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe$(BIN)/%.o: arch/i386/firmware/pcbios/%.c $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe$(BIN)/%.o: arch/i386/firmware/pcbios/%.S $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(CPP) $(CFLAGS) -Ui386 -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(CPP) $(CFLAGS) -Ui386 -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# general rule for 16bit .o, may be overridden
7ffba875a0c7cf118aef7a2c9bfd00c3935e230aGarrett D'Amore# general rule for .bin (plain binary loader code), may be overridden
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# general rule for .z (compressed binary code), may be overridden
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# rule for .z is in top level Makefile
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# Give the directory name, e.g. use $(BIN)/rtl8139.com as the target.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe$(BIN)/%.zo: $(BIN)/%.zbin arch/i386/core/prefixzdata.lds $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) -T arch/i386/core/prefixzdata.lds -b binary $< -o $@
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe$(BIN)/%.uo: $(BIN)/%.bin arch/i386/core/prefixudata.lds $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) -T arch/i386/core/prefixudata.lds -b binary $< -o $@
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# Intermediate prf rules
989f28072d20c73ae0955d6a1e3e2fc74831cb39Jerry Jelinek%.prf: %.rt $(PREFIXOBJS) %.rt1.uo %.rt2.uo $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) $(LDFLAGS) -T $(PLDSCRIPT) $(TARGETENTRY) -R $(subst $(MAKEDEPS),,$^) -o $@
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe%.zprf: %.rt $(ZPREFIXOBJS) %.rt1.uo %.rt2.zo $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) $(LDFLAGS) -T $(PLDSCRIPT) $(TARGETENTRY) -R $(subst $(MAKEDEPS),,$^) -o $@
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# general rules for normal/compressed ROM images, may be overridden
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe$(BIN)/%.rom.rt: $(BIN)/%.rt.o $(ISAENTRY) $(PCIENTRY) $(ISAEXIT) $(PCIEXIT) $(LDSCRIPT) $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) $(LDFLAGS) -T $(LDSCRIPT) -o $@ $(romEXIT) $<
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(MAKEROM) $(MAKEROM_FLAGS) $(MAKEROM_$(ROMCARD)) $(MAKEROM_ID_$(ROMCARD)) -i$(IDENT) $@
18350fd517a33ddbea1445f157f6cd88eacc0898Hans Rosenfeld $(MAKEROM) $(MAKEROM_FLAGS) $(MAKEROM_$(ROMCARD)) $(MAKEROM_ID_$(ROMCARD)) -i$(IDENT) $@
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# general rules for ELF images
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe$(BIN)/%.elf.rt: $(BIN)/%.rt.o $(elfENTRY) $(elfEXIT) $(LDSCRIPT) $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) $(LDFLAGS) -T $(LDSCRIPT) -o $@ $(elfEXIT) $<
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# general rules for Long Mode ELF images
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe$(BIN)/%.lmelf.rt: $(BIN)/%.rt.o $(lmelfENTRY) $(lmelfEXIT) $(LDSCRIPT) $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) $(LDFLAGS) -T $(LDSCRIPT) -o $@ $(lmelfEXIT) $<
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# general rules for ELF dynamic images
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(BIN)/%.elfd.rt: $(BIN)/%.rt.o $(elfdENTRY) $(elfdEXIT) $(LDSCRIPT) $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) $(LDFLAGS) -T $(LDSCRIPT) -o $@ $(elfdEXIT) $<
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# general rules for Long Mode ELF dynamic images
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(BIN)/%.lmelfd.rt: $(BIN)/%.rt.o $(lmelfdENTRY) $(lmelfdEXIT) $(LDSCRIPT) $(MAKEDEPS)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov $(LD) $(LDFLAGS) -T $(LDSCRIPT) -o $@ $(lmelfdEXIT) $<
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe# rules to generate a DOS loadable .com executable
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(BIN)/%.com.rt: $(BIN)/%.rt.o $(comENTRY) $(comEXIT) $(LDSCRIPT) $(MAKEDEPS)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe $(LD) $(LDFLAGS) -T $(LDSCRIPT) -o $@ $< $(comEXIT)
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov# rules to generate a DOS loadable .exe executable
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov$(BIN)/%.exe.rt: $(BIN)/%.rt.o $(exeENTRY) $(exeEXIT) $(LDSCRIPT) $(MAKEDEPS)