PARAM = -DCHIPKIT_MAX PARAM += -DPIC32MX7 PARAM += -DPWM_ENABLED PARAM += -DADC_ENABLED PARAM += -DGPIO_ENABLED PARAM += -DSD0_CS_PIN=14 PARAM += -DSD0_CS_PORT=TRISC PARAM += -DSD0_PORT=2 PARAM += -DSD0_MHZ=10 PARAM += -DSPI_ENABLED PARAM += -DCONSOLE_DEVICE=tty0 PARAM += -DUART4_ENABLED PARAM += -DUART3_ENABLED PARAM += -DUART2_ENABLED PARAM += -DUART1_ENABLED PARAM += -DLED_KERNEL_PIN=3 PARAM += -DLED_KERNEL_PORT=TRISA PARAM += -DUCB_METER PARAM += -DEXEC_SCRIPT PARAM += -DEXEC_ELF PARAM += -DEXEC_AOUT PARAM += -DBUS_DIV=1 PARAM += -DHZ=100 PARAM += -DBUS_KHZ=80000 PARAM += -DCPU_KHZ=80000 PARAM += -DTIMEZONE=480 PARAM += -DDST=1 PARAM += -DMAXUSERS=1 LDSCRIPT = "cfg/bootloader-max32.ld" # # Makefile for RetroBSD, pic32 target # # DEBUG is set to -g by kconfig if debugging is requested (kconfig -g). # include ../gcc-config.mk AS = ${MIPS_GCC_PREFIX}as ${DEBUG} -mips32r2 -EL CC = ${MIPS_GCC_PREFIX}gcc ${DEBUG} -mips32r2 -EL -nostdinc -fno-builtin -Werror -Wall CPP = ${MIPS_GCC_PREFIX}cpp LD = ${MIPS_GCC_PREFIX}gcc -mips32r2 -EL LDFLAGS = -nostdlib -T ../${LDSCRIPT} -Wl,-Map=unix.map SIZE = ${MIPS_GCC_PREFIX}size OBJCOPY = ${MIPS_GCC_PREFIX}objcopy OBJDUMP = ${MIPS_GCC_PREFIX}objdump ifneq (${MIPS_GCC_FORMAT},) LDFLAGS += -Wl,--oformat=${MIPS_GCC_FORMAT} endif # sources are located via $S relative to the compilation directory S = ../.. DEFS = -I. ${PARAM} -DKERNEL CFLAGS = -O ${DEFS} # compile rules: rules are named COMPILE_${SUFFIX} # SUFFIX is the file suffix, capitalized (e.g. C for a .c file). COMPILE_C = ${CC} -c ${CFLAGS} $< COMPILE_S = ${CC} -c ${DEFS} $< OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o adc.o \ clock.o cons.o devsw.o exception.o gpio.o machdep.o mem.o pwm.o \ rd_sd.o signal.o spi.o spi_bus.o swap.o sysctl.o uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ $S/kernel/init_main.c $S/kernel/init_sysent.c \ $S/kernel/kern_clock.c $S/kernel/kern_descrip.c \ $S/kernel/kern_exec.c $S/kernel/kern_exit.c \ $S/kernel/kern_fork.c $S/kernel/kern_mman.c \ $S/kernel/kern_proc.c $S/kernel/kern_prot.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ $S/kernel/vm_swp.c $S/pic32/adc.c $S/pic32/clock.c \ $S/pic32/cons.c $S/pic32/devsw.c $S/pic32/exception.c \ $S/pic32/gpio.c $S/pic32/machdep.c $S/pic32/mem.c $S/pic32/pwm.c \ $S/pic32/rd_sd.c $S/pic32/signal.c $S/pic32/spi.c \ $S/pic32/spi_bus.c $S/pic32/swap.c $S/pic32/sysctl.c \ $S/pic32/uart.c swapunix.c # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o # ${SYSTEM_LD_HEAD} # ${SYSTEM_LD} swapxxx.o # ${SYSTEM_LD_TAIL} SYSTEM_OBJ = startup.o ${OBJS} #ioconf.o ifeq (devcfg.c,$(wildcard devcfg.c)) SYSTEM_OBJ += devcfg.o endif SYSTEM_DEP = Makefile ioconf.c swapunix.c machine sys ${SYSTEM_OBJ} SYSTEM_LD_HEAD = sh ../newvers.sh > vers.c; ${CC} $(CFLAGS) -c vers.c; rm -f $@ SYSTEM_LD = -@echo ${LD} ${LDFLAGS} '$${SYSTEM_OBJ}' vers.o -o unix.elf; \ ${LD} ${LDFLAGS} ${SYSTEM_OBJ} vers.o -o unix.elf SYSTEM_LD_TAIL = ${SIZE} unix.elf; \ $(OBJCOPY) -O ihex --change-addresses=0x80000000 $@ unix.hex; \ $(OBJCOPY) -O binary -R .boot -R .config $@ unix.bin; \ $(OBJDUMP) -d -S unix.elf > unix.dis unix.elf: ${SYSTEM_DEP} swapunix.o ${SYSTEM_LD_HEAD} ${SYSTEM_LD} swapunix.o ${SYSTEM_LD_TAIL} swapunix.o: swapunix.c ${COMPILE_C} all: unix.elf clean: rm -f *.elf *.o *.map *.dis *.bin clean-all: clean rm -f *.h *.c machine sys reconfig ioconf.c swapunix.c: Config ../../../tools/kconfig/kconfig ../../../tools/kconfig/kconfig Config $(MAKE) clean load: unix.elf pic32prog unix.hex machine: ln -s .. $@ sys: ln -s ../../include $@ startup.o: ../startup.S ${COMPILE_S} ioconf.o: ioconf.c ${COMPILE_C} exec_aout.o: $S/kernel/exec_aout.c ${COMPILE_C} exec_conf.o: $S/kernel/exec_conf.c ${COMPILE_C} exec_elf.o: $S/kernel/exec_elf.c ${COMPILE_C} exec_script.o: $S/kernel/exec_script.c ${COMPILE_C} exec_subr.o: $S/kernel/exec_subr.c ${COMPILE_C} init_main.o: $S/kernel/init_main.c ${COMPILE_C} init_sysent.o: $S/kernel/init_sysent.c ${COMPILE_C} kern_clock.o: $S/kernel/kern_clock.c ${COMPILE_C} kern_descrip.o: $S/kernel/kern_descrip.c ${COMPILE_C} kern_exec.o: $S/kernel/kern_exec.c ${COMPILE_C} kern_exit.o: $S/kernel/kern_exit.c ${COMPILE_C} kern_fork.o: $S/kernel/kern_fork.c ${COMPILE_C} kern_mman.o: $S/kernel/kern_mman.c ${COMPILE_C} kern_proc.o: $S/kernel/kern_proc.c ${COMPILE_C} kern_prot.o: $S/kernel/kern_prot.c ${COMPILE_C} kern_prot2.o: $S/kernel/kern_prot2.c ${COMPILE_C} kern_resource.o: $S/kernel/kern_resource.c ${COMPILE_C} kern_sig.o: $S/kernel/kern_sig.c ${COMPILE_C} kern_sig2.o: $S/kernel/kern_sig2.c ${COMPILE_C} kern_subr.o: $S/kernel/kern_subr.c ${COMPILE_C} kern_synch.o: $S/kernel/kern_synch.c ${COMPILE_C} kern_sysctl.o: $S/kernel/kern_sysctl.c ${COMPILE_C} kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} rdisk.o: $S/kernel/rdisk.c ${COMPILE_C} subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} subr_rmap.o: $S/kernel/subr_rmap.c ${COMPILE_C} sys_generic.o: $S/kernel/sys_generic.c ${COMPILE_C} sys_inode.o: $S/kernel/sys_inode.c ${COMPILE_C} sys_pipe.o: $S/kernel/sys_pipe.c ${COMPILE_C} sys_process.o: $S/kernel/sys_process.c ${COMPILE_C} syscalls.o: $S/kernel/syscalls.c ${COMPILE_C} tty.o: $S/kernel/tty.c ${COMPILE_C} tty_subr.o: $S/kernel/tty_subr.c ${COMPILE_C} tty_tty.o: $S/kernel/tty_tty.c ${COMPILE_C} ufs_alloc.o: $S/kernel/ufs_alloc.c ${COMPILE_C} ufs_bio.o: $S/kernel/ufs_bio.c ${COMPILE_C} ufs_bmap.o: $S/kernel/ufs_bmap.c ${COMPILE_C} ufs_dsort.o: $S/kernel/ufs_dsort.c ${COMPILE_C} ufs_fio.o: $S/kernel/ufs_fio.c ${COMPILE_C} ufs_inode.o: $S/kernel/ufs_inode.c ${COMPILE_C} ufs_mount.o: $S/kernel/ufs_mount.c ${COMPILE_C} ufs_namei.o: $S/kernel/ufs_namei.c ${COMPILE_C} ufs_subr.o: $S/kernel/ufs_subr.c ${COMPILE_C} ufs_syscalls.o: $S/kernel/ufs_syscalls.c ${COMPILE_C} ufs_syscalls2.o: $S/kernel/ufs_syscalls2.c ${COMPILE_C} vfs_vnops.o: $S/kernel/vfs_vnops.c ${COMPILE_C} vm_sched.o: $S/kernel/vm_sched.c ${COMPILE_C} vm_swap.o: $S/kernel/vm_swap.c ${COMPILE_C} vm_swp.o: $S/kernel/vm_swp.c ${COMPILE_C} adc.o: $S/pic32/adc.c ${COMPILE_C} clock.o: $S/pic32/clock.c ${COMPILE_C} cons.o: $S/pic32/cons.c ${COMPILE_C} devsw.o: $S/pic32/devsw.c ${COMPILE_C} exception.o: $S/pic32/exception.c ${COMPILE_C} gpio.o: $S/pic32/gpio.c ${COMPILE_C} machdep.o: $S/pic32/machdep.c ${COMPILE_C} mem.o: $S/pic32/mem.c ${COMPILE_C} pwm.o: $S/pic32/pwm.c ${COMPILE_C} rd_sd.o: $S/pic32/rd_sd.c ${COMPILE_C} signal.o: $S/pic32/signal.c ${COMPILE_C} spi.o: $S/pic32/spi.c ${COMPILE_C} spi_bus.o: $S/pic32/spi_bus.c ${COMPILE_C} swap.o: $S/pic32/swap.c ${COMPILE_C} sysctl.o: $S/pic32/sysctl.c ${COMPILE_C} uart.o: $S/pic32/uart.c ${COMPILE_C}