Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ################################
- ##############ZeOS #############
- ################################
- ########## Makefile ############
- ################################
- # package dev86 is required
- AS86 = as86 -0 -a
- LD86 = ld86 -0
- HOSTCFLAGS = -m32 -Wall -Wstrict-prototypes -g
- HOSTCC = gcc
- CC = gcc
- AS = as
- LD = ld
- OBJCOPY = objcopy -O binary -R .note -R .comment -S
- INCLUDEDIR = include
- # Define here flags to compile the tests if needed
- JP =
- CFLAGS = -m32 -O2 -g $(JP) -fno-omit-frame-pointer -ffreestanding -Wall -I$(INCLUDEDIR)
- ASMFLAGS = -I$(INCLUDEDIR)
- ASFLAGS = --32 $(ASMFLAGS)
- SYSLDFLAGS = -T system.lds
- USRLDFLAGS = -T user.lds
- LINKFLAGS = -m elf_i386 -g
- SYSOBJ = interrupt.o entry.o sys_call_table.o io.o sched.o sys.o mm.o devices.o utils.o hardware.o list.o
- LIBZEOS = -L . -l zeos
- #add to USROBJ the object files required to complete the user program
- USROBJ = libc.o # libjp.a
- all:zeos.bin
- zeos.bin: bootsect system build user
- $(OBJCOPY) system system.out
- $(OBJCOPY) user user.out
- ./build bootsect system.out user.out > zeos.bin
- build: build.c
- $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
- bootsect: bootsect.o
- $(LD86) -s -o $@ $<
- bootsect.o: bootsect.s
- $(AS86) -o $@ $<
- bootsect.s: bootsect.S Makefile
- $(CPP) $(ASMFLAGS) -traditional $< -o $@
- entry.s: entry.S $(INCLUDEDIR)/asm.h $(INCLUDEDIR)/segment.h
- $(CPP) $(ASMFLAGS) -o $@ $<
- sys_call_table.s: sys_call_table.S $(INCLUDEDIR)/asm.h $(INCLUDEDIR)/segment.h
- $(CPP) $(ASMFLAGS) -o $@ $<
- user.o:user.c $(INCLUDEDIR)/libc.h
- interrupt.o:interrupt.c $(INCLUDEDIR)/interrupt.h $(INCLUDEDIR)/segment.h $(INCLUDEDIR)/types.h
- io.o:io.c $(INCLUDEDIR)/io.h
- sched.o:sched.c $(INCLUDEDIR)/sched.h
- libc.o:libc.c $(INCLUDEDIR)/libc.h
- mm.o:mm.c $(INCLUDEDIR)/types.h $(INCLUDEDIR)/mm.h
- sys.o:sys.c $(INCLUDEDIR)/devices.h
- utils.o:utils.c $(INCLUDEDIR)/utils.h
- system.o:system.c $(INCLUDEDIR)/hardware.h system.lds $(SYSOBJ) $(INCLUDEDIR)/segment.h $(INCLUDEDIR)/types.h $(INCLUDEDIR)/interrupt.h $(INCLUDEDIR)/system.h $(INCLUDEDIR)/sched.h $(INCLUDEDIR)/mm.h $(INCLUDEDIR)/io.h $(INCLUDEDIR)/mm_address.h
- system: system.o system.lds $(SYSOBJ)
- $(LD) $(LINKFLAGS) $(SYSLDFLAGS) -o $@ $< $(SYSOBJ) $(LIBZEOS)
- user: user.o user.lds $(USROBJ)
- $(LD) $(LINKFLAGS) $(USRLDFLAGS) -o $@ $< $(USROBJ)
- clean:
- rm -f *.o *.s bochsout.txt parport.out system.out system bootsect zeos.bin user user.out *~ build
- disk: zeos.bin
- dd if=zeos.bin of=/dev/fd0
- emul: zeos.bin
- bochs -q -f .bochsrc
- gdb: zeos.bin
- @echo "=================================================="
- @echo "GDB Usage:"
- @echo " gdb system"
- @echo " target remote localhost:1234"
- @echo " add-symbol-file user 0x100000"
- @echo "=================================================="
- bochs -q -f .bochsrc_gdb
- emuldbg: zeos.bin
- bochs_nogdb -q -f .bochsrc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement