# # Copyright (c) 2006 Martin Decky # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # - The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ## Configuration # ROOT_PATH = .. VERSION_DEF = $(ROOT_PATH)/version COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common COMMON_HEADER = $(ROOT_PATH)/common.h CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config CONFIG_HEADER = $(ROOT_PATH)/config.h -include $(VERSION_DEF) -include $(COMMON_MAKEFILE) -include $(CONFIG_MAKEFILE) KERNEL_PATH = $(ROOT_PATH)/kernel USPACE_PATH = $(ROOT_PATH)/uspace DIST_PATH = $(USPACE_PATH)/dist DIST_OVERLAY_PATH = $(USPACE_PATH)/overlay TOOLS_PATH = $(ROOT_PATH)/tools DRVS_PATH = drv MKARRAY = $(TOOLS_PATH)/mkarray.py MKFAT = $(TOOLS_PATH)/mkfat.py MKEXT4 = $(TOOLS_PATH)/mkext4.py MKUIMAGE = $(TOOLS_PATH)/mkuimage.py ifeq ($(PRECHECK),y) JOBFILE = $(TOOLS_PATH)/jobfile.py # NOTE: You must not change the order of arguments. CC_JOB = $(JOBFILE) $(JOB) $(CC) $< -o $@ else CC_JOB = $(CC) $< -o $@ endif DISTROOT = distroot INITRD = initrd INIT_TASKS = \ $(USPACE_PATH)/srv/ns/ns \ $(USPACE_PATH)/srv/loader/loader \ $(USPACE_PATH)/app/init/init \ $(USPACE_PATH)/srv/locsrv/locsrv \ $(USPACE_PATH)/srv/bd/rd/rd \ $(USPACE_PATH)/srv/vfs/vfs \ $(USPACE_PATH)/srv/logger/logger ifeq ($(RDFMT),tmpfs) INIT_TASKS += $(USPACE_PATH)/srv/fs/tmpfs/tmpfs endif ifeq ($(RDFMT),fat) INIT_TASKS += $(USPACE_PATH)/srv/fs/fat/fat endif ifeq ($(RDFMT),ext4fs) INIT_TASKS += $(USPACE_PATH)/srv/fs/ext4fs/ext4fs endif RD_SRVS_ESSENTIAL = \ hid/input \ hid/output \ hid/console \ devman \ fs/locfs \ klog ifeq ($(CONFIG_FB), y) RD_SRVS_ESSENTIAL += \ hid/compositor endif RD_SRVS_NON_ESSENTIAL = \ bd/file_bd \ bd/sata_bd \ bd/vbd \ clipboard \ fs/tmpfs \ fs/fat \ fs/mfs \ fs/cdfs \ fs/exfat \ fs/udf \ fs/ext4fs \ hid/remcons \ hid/isdv4_tablet \ hid/rfb \ net/dhcp \ net/dnsrsrv \ net/ethip \ net/inetsrv \ net/loopip \ net/nconfsrv \ net/slip \ net/tcp \ net/udp \ taskmon \ test/chardev-test \ test/ipc-test \ volsrv RD_DRVS_ESSENTIAL = \ root/root \ root/virt \ fb/kfb RD_DRVS_NON_ESSENTIAL = \ test/test1 \ test/test2 \ test/test3 \ nic/ne2k \ nic/e1k \ nic/rtl8139 \ nic/rtl8169 \ nic/ar9271 \ nic/virtio-net \ block/ahci \ block/virtio-blk RD_DRV_CFG = RD_DRVS_FW_NON_ESSENTIAL = \ nic/ar9271 RD_LIBS = ifeq ($(CONFIG_DEVEL_FILES), y) RD_LIBS += \ $(USPACE_PATH)/lib/c/libc.a endif ifeq ($(CONFIG_BUILD_SHARED_LIBS), y) RD_LIBS += \ $(USPACE_PATH)/lib/c/libc.so.0 \ $(USPACE_PATH)/lib/math/libmath.so.0 \ $(USPACE_PATH)/lib/dltest/libdltest.so.0 endif RD_APPS_ESSENTIAL = \ bdsh \ getterm \ kio ifeq ($(CONFIG_FB), y) RD_APPS_ESSENTIAL += \ vlaunch \ vterm endif RD_APPS_NON_ESSENTIAL = \ barber \ bithenge \ blkdump \ contacts \ corecfg \ cpptest \ devctl \ dnscfg \ dnsres \ download \ edit \ fdisk \ gunzip \ hbench \ inet \ kill \ killall \ loc \ lprint \ mixerctl \ modplay \ logset \ mkfat \ mkexfat \ mkext4 \ mkmfs \ nic \ sbi \ sportdmp \ redir \ taskdump \ tester \ testread \ testrunner \ testwrit \ tetris \ tmon \ trace \ netecho \ nterm \ pci \ ping \ pkg \ stats \ sysinfo \ sysinst \ top \ untar \ usbinfo \ vol \ vuhid \ mkbd \ websrv \ date \ vcalc \ vdemo \ viewer \ df \ fontviewer \ wifi_supplicant ifeq ($(CONFIG_BUILD_SHARED_LIBS), y) RD_APPS_NON_ESSENTIAL += dltest dltests endif RD_TESTS = \ $(USPACE_PATH)/lib/c/test-libc \ $(USPACE_PATH)/lib/label/test-liblabel \ $(USPACE_PATH)/lib/posix/test-libposix \ $(USPACE_PATH)/lib/sif/test-libsif \ $(USPACE_PATH)/lib/uri/test-liburi \ $(USPACE_PATH)/lib/math/test-libmath \ $(USPACE_PATH)/drv/bus/usb/xhci/test-xhci \ $(USPACE_PATH)/app/bdsh/test-bdsh \ $(USPACE_PATH)/srv/net/tcp/test-tcp \ $(USPACE_PATH)/srv/volsrv/test-volsrv \ RD_DATA_ESSENTIAL = \ $(USPACE_PATH)/app/bdsh/demo.txt RD_DATA_NON_ESSENTIAL = \ $(USPACE_PATH)/app/modplay/demo.xm \ $(USPACE_PATH)/app/viewer/logo.tga COMPONENTS = \ $(KERNEL_PATH)/kernel.elf \ $(INIT_TASKS) \ $(INITRD).img LINK = arch/$(BARCH)/_link.ld COMP = component COMPS = $(COMP)s -include arch/$(BARCH)/Makefile.inc ifeq ($(CONFIG_BAREBONE),y) RD_SRVS = $(RD_SRVS_ESSENTIAL) RD_APPS = $(RD_APPS_ESSENTIAL) RD_DRVS = $(RD_DRVS_ESSENTIAL) RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL) RD_DATA = $(RD_DATA_ESSENTIAL) else RD_SRVS = $(RD_SRVS_ESSENTIAL) $(RD_SRVS_NON_ESSENTIAL) RD_APPS = $(RD_APPS_ESSENTIAL) $(RD_APPS_NON_ESSENTIAL) RD_DRVS = $(RD_DRVS_ESSENTIAL) $(RD_DRVS_NON_ESSENTIAL) RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL) $(RD_DRVS_FW_NON_ESSENTIAL) RD_DATA = $(RD_DATA_ESSENTIAL) $(RD_DATA_NON_ESSENTIAL) endif MODULES := $(notdir $(COMPONENTS)) BOOT_OUTPUT ?= $(ROOT_PATH)/image.boot RAW ?= image.raw JOB ?= image.job MAP ?= image.map BUILD ?= Makefile.build