185 lines
6.4 KiB
Makefile
185 lines
6.4 KiB
Makefile
# Copyright (c) 1986 Regents of the University of California.
|
|
# All rights reserved. The Berkeley software License Agreement
|
|
# specifies the terms and conditions for redistribution.
|
|
#
|
|
# This makefile is designed to be run as:
|
|
# make
|
|
#
|
|
# The `make' will compile everything, including a kernel, utilities
|
|
# and a root filesystem image.
|
|
|
|
#
|
|
# Supported boards
|
|
#
|
|
MAX32 = pic32/max32
|
|
UBW32 = pic32/ubw32
|
|
UBW32UART = pic32/ubw32-uart
|
|
MAXIMITE = pic32/maximite
|
|
EXPLORER16 = pic32/explorer16
|
|
STARTERKIT = pic32/starter-kit
|
|
DUINOMITE = pic32/duinomite
|
|
PINGUINO = pic32/pinguino-micro
|
|
DIP = pic32/dip
|
|
BAREMETAL = pic32/baremetal
|
|
RETROONE = pic32/retroone
|
|
|
|
# Select target board
|
|
TARGET ?= $(MAX32)
|
|
|
|
# Filesystem and swap sizes.
|
|
FS_KBYTES = 16384
|
|
SWAP_KBYTES = 2048
|
|
|
|
# Set this to the device name for your SD card. With this
|
|
# enabled you can use "make installfs" to copy the filesys.img
|
|
# to the SD card.
|
|
|
|
#SDCARD = /dev/sdb
|
|
|
|
#
|
|
# C library options: passed to libc makefile.
|
|
# See lib/libc/Makefile for explanation.
|
|
#
|
|
DEFS =
|
|
|
|
FSUTIL = tools/fsutil/fsutil
|
|
|
|
#
|
|
# Filesystem contents.
|
|
#
|
|
BIN_FILES := $(wildcard bin/*)
|
|
SBIN_FILES := $(wildcard sbin/*)
|
|
UFLASH_FILES := $(wildcard uflash/*)
|
|
GAMES_FILES := $(shell find games -type f ! -path '*/.*')
|
|
LIB_FILES := $(wildcard lib/*)
|
|
LIBEXEC_FILES := $(wildcard libexec/*)
|
|
ETC_FILES = etc/rc etc/rc.local etc/ttys etc/gettytab etc/group \
|
|
etc/passwd etc/shadow etc/fstab etc/motd etc/shells \
|
|
etc/termcap
|
|
INC_FILES = include/stdio.h include/syscall.h include/sys/types.h \
|
|
include/sys/select.h
|
|
SHARE_FILES = share/re.help share/example/Makefile \
|
|
share/example/ashello.S share/example/chello.c \
|
|
share/example/blkjack.bas share/example/hilow.bas \
|
|
share/example/stars.bas share/example/prime.scm \
|
|
share/example/fact.fth share/example/echo.S \
|
|
share/smallc/lib.c share/smallc/Makefile share/smallc/primelist.c \
|
|
share/smallc/primesum.c share/smallc/sys.s share/smallc/test1.c \
|
|
share/smallc/test2.c $(wildcard share/lccom/*)
|
|
ALLFILES = $(SBIN_FILES) $(ETC_FILES) $(BIN_FILES) $(LIB_FILES) $(LIBEXEC_FILES) \
|
|
$(INC_FILES) $(SHARE_FILES) $(GAMES_FILES) $(UFLASH_FILES) \
|
|
var/log/messages var/log/wtmp .profile
|
|
ALLDIRS = sbin/ bin/ dev/ etc/ tmp/ lib/ libexec/ share/ share/example/ \
|
|
share/lccom/ share/misc/ share/smallc/ var/ var/run/ var/log/ u/ include/ include/sys/ \
|
|
games/ games/lib/ uflash/
|
|
BDEVS = dev/sd0!b0:0 dev/sd1!b0:1 dev/sw0!b1:0
|
|
CDEVS = dev/console!c0:0 \
|
|
dev/mem!c1:0 dev/kmem!c1:1 dev/null!c1:2 dev/zero!c1:3 \
|
|
dev/tty!c2:0 \
|
|
dev/rsd0!c3:0 dev/rsd1!c3:1 dev/swap!c3:0 \
|
|
dev/klog!c4:0 \
|
|
dev/stdin!c5:0 dev/stdout!c5:1 dev/stderr!c5:2 \
|
|
dev/rsw0!c6:0 \
|
|
dev/porta!c7:0 dev/portb!c7:1 dev/portc!c7:2 \
|
|
dev/portd!c7:3 dev/porte!c7:4 dev/portf!c7:5 dev/portg!c7:6 \
|
|
dev/confa!c7:64 dev/confb!c7:65 dev/confc!c7:66 \
|
|
dev/confd!c7:67 dev/confe!c7:68 dev/conff!c7:69 dev/confg!c7:70 \
|
|
dev/spi1!c9:0 dev/spi2!c9:1 dev/spi3!c9:2 dev/spi4!c9:3 \
|
|
dev/glcd0!c10:0 dev/uflash!c12:0
|
|
FDDEVS = dev/fd/ dev/fd/0!c5:0 dev/fd/1!c5:1 dev/fd/2!c5:2 \
|
|
dev/fd/3!c5:3 dev/fd/4!c5:4 dev/fd/5!c5:5 dev/fd/6!c5:6 \
|
|
dev/fd/7!c5:7 dev/fd/8!c5:8 dev/fd/9!c5:9 dev/fd/10!c5:10 \
|
|
dev/fd/11!c5:11 dev/fd/12!c5:12 dev/fd/13!c5:13 \
|
|
dev/fd/14!c5:14 dev/fd/15!c5:15 dev/fd/16!c5:16 \
|
|
dev/fd/17!c5:17 dev/fd/18!c5:18 dev/fd/19!c5:19 \
|
|
dev/fd/20!c5:20 dev/fd/21!c5:21 dev/fd/22!c5:22 \
|
|
dev/fd/23!c5:23 dev/fd/24!c5:24 dev/fd/25!c5:25 \
|
|
dev/fd/26!c5:26 dev/fd/27!c5:27 dev/fd/28!c5:28 \
|
|
dev/fd/29!c5:29
|
|
ADCDEVS = dev/adc0!c8:0 dev/adc1!c8:1 dev/adc2!c8:2 dev/adc3!c8:3 \
|
|
dev/adc4!c8:4 dev/adc5!c8:5 dev/adc6!c8:6 dev/adc7!c8:7 \
|
|
dev/adc8!c8:8 dev/adc9!c8:9 dev/adc10!c8:10 dev/adc11!c8:11 \
|
|
dev/adc12!c8:12 dev/adc13!c8:13 dev/adc14!c8:14 dev/adc15!c8:15
|
|
OCDEVS = dev/oc0!c11:0 dev/oc1!c11:1 dev/oc2!c11:2 dev/oc3!c11:3 dev/oc4!c11:4
|
|
|
|
all: build kernel
|
|
$(MAKE) fs
|
|
|
|
fs: filesys.img user.img
|
|
|
|
kernel:
|
|
$(MAKE) -C sys/$(TARGET)
|
|
|
|
build:
|
|
$(MAKE) -C tools
|
|
$(MAKE) -C src install
|
|
|
|
filesys.img: $(FSUTIL) $(ALLFILES)
|
|
rm -f $@
|
|
$(FSUTIL) -n$(FS_KBYTES) -s$(SWAP_KBYTES) $@
|
|
$(FSUTIL) -a $@ $(ALLDIRS) $(ALLFILES)
|
|
$(FSUTIL) -a $@ $(CDEVS)
|
|
$(FSUTIL) -a $@ $(BDEVS)
|
|
$(FSUTIL) -a $@ $(ADCDEVS)
|
|
$(FSUTIL) -a $@ $(OCDEVS)
|
|
# $(FSUTIL) -a $@ $(FDDEVS)
|
|
|
|
user.img: $(FSUTIL)
|
|
rm -f $@
|
|
$(FSUTIL) -n$(FS_KBYTES) $@
|
|
|
|
$(FSUTIL):
|
|
cd tools/fsutil; $(MAKE)
|
|
|
|
clean:
|
|
rm -f *~
|
|
for dir in tools src sys/pic32; do $(MAKE) -C $$dir -k clean; done
|
|
|
|
cleanall: clean
|
|
rm -f sys/pic32/*/unix.hex bin/* sbin/* lib/* games/[a-k]* games/[m-z]* libexec/* share/man/cat*/*
|
|
rm -f games/lib/adventure.dat
|
|
rm -f games/lib/cfscores
|
|
rm -f share/re.help
|
|
rm -f share/misc/more.help
|
|
rm -f etc/termcap
|
|
rm -f uflash/*
|
|
|
|
|
|
# TODO
|
|
buildlib:
|
|
@echo installing /usr/include
|
|
# cd include; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
@echo
|
|
@echo compiling libc.a
|
|
cd lib/libc; $(MAKE) $(LIBCDEFS)
|
|
@echo installing /lib/libc.a
|
|
cd lib/libc; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
@echo
|
|
@echo compiling C compiler
|
|
cd lib; $(MAKE) ccom cpp c2
|
|
@echo installing C compiler
|
|
cd lib/ccom; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
cd lib/cpp; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
cd lib/c2; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
cd lib; $(MAKE) clean
|
|
@echo
|
|
@echo re-compiling libc.a
|
|
cd lib/libc; $(MAKE) $(LIBCDEFS)
|
|
@echo re-installing /lib/libc.a
|
|
cd lib/libc; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
@echo
|
|
@echo re-compiling C compiler
|
|
cd lib; $(MAKE) ccom cpp c2
|
|
@echo re-installing C compiler
|
|
cd lib/ccom; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
cd lib/cpp; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
cd lib/c2; $(MAKE) DESTDIR=$(DESTDIR) install
|
|
@echo
|
|
|
|
installfs: filesys.img
|
|
ifdef SDCARD
|
|
sudo dd bs=16k if=filesys.img of=$(SDCARD)
|
|
else
|
|
@echo "Error: No SDCARD defined."
|
|
endif
|