76 lines
2.0 KiB
Makefile
76 lines
2.0 KiB
Makefile
#
|
|
# OS/161 build environment: compile source files for the host system.
|
|
#
|
|
# Usage: use os161.hostprog.mk or os161.hostlib.mk
|
|
#
|
|
# Variables controlling this file:
|
|
#
|
|
# SRCS .c and .S files to compile.
|
|
#
|
|
# Provides:
|
|
#
|
|
# HOST_OBJS .ho files from compilation.
|
|
#
|
|
|
|
# Objects list starts empty. It is added to below.
|
|
HOST_OBJS=
|
|
|
|
# .ho is a host object.
|
|
.SUFFIXES: .ho
|
|
|
|
clean-local: cleanhostcompile
|
|
cleanhostcompile:
|
|
rm -f $(MYBUILDDIR)/*.ho $(MYBUILDDIR)/*.ha
|
|
|
|
distclean-local: distcleanhostcompile
|
|
distcleanhostcompile:
|
|
rm -f $(MYBUILDDIR)/.hostdepend
|
|
|
|
#
|
|
# Depend: generate dependency information.
|
|
# Use gcc's -MM argument for this.
|
|
#
|
|
# Note that we use -MM rather than -M, so we don't get system headers.
|
|
# They would be host system headers and we don't want to get involved
|
|
# with those.
|
|
#
|
|
# The fixdepends script transforms the results by substituting some
|
|
# make variables back into them; this way the depend files are
|
|
# independent of (at least some of) the build configuration. It also
|
|
# changes .o files to .ho files so the host and native builds are
|
|
# independent, and allows for placing the .ho files in the build
|
|
# directory.
|
|
#
|
|
depend-local: $(MYBUILDDIR) .WAIT predepend .WAIT dependhostcompile
|
|
dependhostcompile:
|
|
$(HOST_CC) $(HOST_CFLAGS) -DHOST -MM $(SRCS) |\
|
|
$(TOP)/mk/fixdepends.sh '$(INSTALLTOP)' host \
|
|
> $(MYBUILDDIR)/.hostdeptmp
|
|
mv -f $(MYBUILDDIR)/.hostdeptmp $(MYBUILDDIR)/.hostdepend
|
|
|
|
.-include "$(MYBUILDDIR)/.hostdepend"
|
|
|
|
predepend:
|
|
.PHONY: predepend
|
|
|
|
# No tags for host programs.
|
|
tags: tagshostcompile
|
|
tagshostcompile: ;
|
|
|
|
#
|
|
# Compile rules.
|
|
# We can use the same rules for .c and .S because gcc knows how to handle
|
|
# .S files.
|
|
#
|
|
.for _S_ in $(SRCS:M*.[cS])
|
|
HOST_OBJS+=$(MYBUILDDIR)/$(_S_:T:R).ho
|
|
$(MYBUILDDIR)/$(_S_:T:R).ho: $(_S_)
|
|
$(HOST_CC) $(HOST_CFLAGS) -DHOST -c $(_S_) -o $(.TARGET)
|
|
.endfor
|
|
|
|
# Make non-file rules PHONY.
|
|
.PHONY: clean-local cleanhostcompile distclean-local distcleanhostcompile
|
|
.PHONY: depend-local dependhostcompile tags tagshostcompile
|
|
|
|
# End.
|