100 lines
3.0 KiB
Makefile
Executable File
100 lines
3.0 KiB
Makefile
Executable File
# Makefile for coLinux
|
|
|
|
# User config, if exist. Empty, if not.
|
|
USER_CFG := $(shell test -f bin/user-build.cfg \
|
|
&& echo "bin/user-build.cfg" )
|
|
|
|
ifneq ($(USER_CFG),)
|
|
|
|
# Detect target host OS (only if not as argument on make)
|
|
HOSTOS := $(shell . $(USER_CFG); echo $$COLINUX_HOST_OS)
|
|
|
|
# Target directories
|
|
export COLINUX_TARGET_KERNEL_SOURCE := \
|
|
$(shell . bin/build-common.sh --get-vars; \
|
|
echo $$COLINUX_TARGET_KERNEL_SOURCE)
|
|
export COLINUX_TARGET_KERNEL_BUILD := \
|
|
$(shell . bin/build-common.sh --get-vars; \
|
|
echo $$COLINUX_TARGET_KERNEL_BUILD)
|
|
export COLINUX_TARGET_KERNEL_PATH := \
|
|
$(shell . bin/build-common.sh --get-vars; \
|
|
echo $$COLINUX_TARGET_KERNEL_PATH)
|
|
export COLINUX_ENABLE_WX := \
|
|
$(shell . bin/build-common.sh --get-vars; \
|
|
echo $$COLINUX_ENABLE_WX)
|
|
|
|
else
|
|
|
|
X := $(shell echo "bin/user-build.cfg: Missing configured file." 1>&2 )
|
|
|
|
conf_missing:
|
|
@echo "Build is not configured"
|
|
@exit 1
|
|
|
|
endif
|
|
|
|
.PHONY: colinux clean distclean help
|
|
|
|
# Include host OS specific makefile
|
|
ifneq ($(HOSTOS),)
|
|
include Makefile.$(HOSTOS)
|
|
|
|
# Compile daemons
|
|
colinux:
|
|
@cd src && make colinux
|
|
|
|
# Dump python build tree
|
|
dump:
|
|
@cd src && python ../bin/make.py colinux --dump
|
|
endif
|
|
|
|
clean:
|
|
make -C src clean
|
|
find src \( -name '.tmp_versions' \
|
|
-o -name '.module.*_build' \
|
|
\) -type d -print | xargs rm -rf
|
|
find src bin \( -name '*.o' -o -name '*.pyc' \
|
|
-o -name '.*.cmd' -o -name 'colinux.mod.c' \
|
|
-o -name 'Module*.symvers' \
|
|
\) -type f -print | xargs rm -f
|
|
|
|
distclean: clean
|
|
ifneq ($(USER_CFG),)
|
|
rm -f bin/user-build.cfg bin/user-build.cfg.old \
|
|
$(shell . $(USER_CFG); echo $$BUILD_DIR)/.build-*.md5
|
|
endif
|
|
find src \( -name 'premaid' \
|
|
\) -type d -print | xargs rm -rf
|
|
find src \( -name '*.orig' -o -name '*.rej' \
|
|
-o -name '.*.orig' -o -name '.*.rej' \
|
|
-o -name '*%' \
|
|
\) -type f -print | xargs rm -f
|
|
|
|
help:
|
|
@echo ''
|
|
@echo 'Execute "make" or "make all" to build all targets'
|
|
@echo ''
|
|
@echo 'Other generic targets:'
|
|
@echo ' all - Build crosstools, all targets marked with [*]'
|
|
@echo '* download - Download all sources (for cross tools and libs)'
|
|
@echo '* cross - Build and install cross compiler and binutils'
|
|
@echo '* libs - Build and install libs: fltk,win32api'
|
|
@echo '* kernel - Build colinux kernel vmlinux and modules'
|
|
@echo '* colinux - Build colinux daemons'
|
|
@echo ' package - Create ZIP file packages for pre releases'
|
|
@echo ' installer - Create Installer (need wine and running x11)'
|
|
@echo ' dump - Dump build tree and dependencies from python scripts'
|
|
@echo ''
|
|
@echo 'Cleaning colinux build (daemons only, no cross compiler, no libs):'
|
|
@echo ' clean - remove most generated files but keep distry files'
|
|
@echo ' distclean - remove all generated files + config + md5sum'
|
|
@echo ''
|
|
@echo 'Options'
|
|
@echo ' HOSTOS=winnt - Build targets for Winnt'
|
|
@echo ' HOSTOS=linux - Build targets for Linux as host'
|
|
ifeq ($(USER_CFG),)
|
|
@echo ''
|
|
@echo 'Please configure directories in file bin/user-build.cfg and use'
|
|
@echo 'bin/sample.user-build.cfg as sample! Or use "./configure --help"'
|
|
endif
|