diff options
Diffstat (limited to 'sources/Makefile')
-rw-r--r-- | sources/Makefile | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/sources/Makefile b/sources/Makefile new file mode 100644 index 0000000..68ac40a --- /dev/null +++ b/sources/Makefile @@ -0,0 +1,144 @@ +#-*- mode: makefile; indent-tabs-mode: t; coding: utf-8; show-trailing-whitespace: t -*- +# Makefile +# Copyright 2022 Angelo Rossi <angelo.rossi.homelab@gmail.com> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. 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. +# +# 3. Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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. + +# Some utilities +OS=${shell uname -s} + +# Debug enabled +DEBUG=1 + +# Defines verbose +VERBOSE= + +# Defines the target name. +TARGET=gemtp++ + +# Linker script name. +LINKER_SCRIPT= + +# Is a toolchain defined? +ifndef TOOLCHAIN + TOOLCHAIN=gnu +endif + +# The base directory for ST libraries. +ROOT=.. + +# Where to find source files that do not live in this directory. +SOURCES_PATH=${ROOT}/sources + +# Where to find header files that do not live in the source directory. +INCLUDES_PATH=${ROOT}/includes + +# Libraries path +LIBRARIES_PATH=${ROOT}/libraries + +# Scripts path +SCRIPTS_PATH=${ROOT}/scripts + +# Project definitions +WITH_OVER1=1 +WITH_OVER20=1 +WITH_OVER51=1 + +# Include common Makefile definitions. +include ${ROOT}/Makefile.global + +# The default rule, which causes the Vibro Application to be built. +all: ${TOOLCHAIN} +all: ${TOOLCHAIN}/${TARGET} + +# List rule +lst: all +lst: ${TOOLCHAIN}/${TARGET}.lst + +# The rule to clean out all the build products. +clean: + @if [ 'x${VERBOSE}' = x ]; \ + then \ + echo " [ CLEAN ] ${<}"; \ + else \ + echo "rm -rf ${TOOLCHAIN} ${wildcard *~} ${<}"; \ + fi + @rm -rf ${TOOLCHAIN} ${wildcard *~} ${<} + +# The rule which creates the .o and executable directory. +${TOOLCHAIN}: + @if [ 'x${VERBOSE}' = x ]; \ + then \ + echo " [ MKDIR ] ${TOOLCHAIN}"; \ + else \ + echo "mkdir -p ${TOOLCHAIN}"; \ + fi + @mkdir -p ${TOOLCHAIN} + +# Rules for building the system code. +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/utilities.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/volt45.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/blkcom.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/dekspy.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/dekplt.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/tacsar.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/comlock.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/time.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/strcom.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/freedom.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/movecopy.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/location.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/algebra.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/random.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/labcom.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/newmods.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/umdeck.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/labl02.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/plot.o + +ifdef WITH_OVER1 +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/over1.o +endif + +ifdef WITH_OVER20 +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/over20.o +endif + +ifdef WITH_OVER51 +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/over51.o +endif + + +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/datain.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/emtp.o +${TOOLCHAIN}/${TARGET}: ${TOOLCHAIN}/main.o + +# Include the automatically generated dependency files. +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${TOOLCHAIN}/*.d} __dummy__ +endif +# DO NOT DELETE |