# # 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 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 = $(ROOT_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 = \ srv/ns \ srv/loader \ app/init \ srv/locsrv \ srv/bd/rd \ srv/vfs \ srv/logger ifeq ($(RDFMT),tmpfs) INIT_TASKS += srv/fs/tmpfs endif ifeq ($(RDFMT),fat) INIT_TASKS += srv/fs/fat endif ifeq ($(RDFMT),ext4fs) INIT_TASKS += srv/fs/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_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 COMPONENTS = \ $(KERNEL_PATH)/kernel.elf \ $(addprefix $(DIST_PATH)/,$(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) 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) endif MODULES := $(notdir $(COMPONENTS)) BOOT_OUTPUT ?= $(ROOT_PATH)/image.boot RAW ?= image.raw JOB ?= image.job MAP ?= image.map BUILD ?= Makefile.build