You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
4.2 KiB
Makefile

# Nathan's generic Makefile -*- mode:Makefile -*-
# Copyright (C) 2019-2020 Nathan Sidwell, nathan@acm.org
# License: Apache v2.0
srcdir := /home/seti/riscv-gnu-toolchain/gcc/libcody
prefix := /opt/riscv
exec_prefix := ${prefix}
bindir := ${exec_prefix}/bin
libdir := ${exec_prefix}/lib
includedir := ${prefix}/include
# Linker options
LDFLAGS := -static-libstdc++ -static-libgcc -Wl,--no-undefined
LIBS :=
# We have to place the -I paths last, so that building will see -I paths to us
CXX := $(filter-out -I%,g++ -std=c++11)
AR := ar
RANLIB := ranlib
INSTALL := $(srcdir)/build-aux/install-sh
# C++ compiler options
CXXFLAGS := -g -O2
CXXINC := $(filter -I%,g++ -std=c++11)
CXXOPTS := $(CXXFLAGS)
ifneq (,yes)
CXXOPTS += -fno-exceptions -fno-rtti
endif
# Config
CXXOPTS += $(filter-out -DHAVE_CONFIG_H,-DHAVE_CONFIG_H) -include config.h
# Linker options
LDFLAGS := -static-libstdc++ -static-libgcc -Wl,--no-undefined
LIBS :=
# Per-source & per-directory compile flags (warning: recursive)
SRC_CXXFLAGS = $(CXXFLAGS$(patsubst $(srcdir)%,%,$1)) \
$(if $(filter-out $(srcdir)/,$1),\
$(call $0,$(dir $(patsubst %/,%,$1))))
ifneq ($(MAINTAINER),)
override MAINTAINER += $1
endif
ifeq (,yes)
MAINTAINER = $2
else
MAINTAINER = \# --enable-maintainer-mode to rebuild $1, or make MAINTAINER=touch
endif
vpath %.in $(srcdir)
vpath %.cc $(srcdir)
.SUFFIXES: .o .cc
%.o: %.cc
@mkdir -p $(dir $@)
$(CXX) $(strip $(CXXOPTS) $(call SRC_CXXFLAGS,$<) $(CXXINC)) \
-MMD -MP -MF ${@:.o=.d} -c -o $@ $<
all:: Makefile
mostlyclean::
clean:: Makefile
# FIXME: Delete
revision.stamp: $(srcdir)/.
@revision=$$(git -C $(srcdir) rev-parse HEAD 2>/dev/null) ;\
if test -n "$$revision" ;\
then revision=git-$$revision ;\
if git -C $(srcdir) status --porcelain 2>/dev/null | grep -vq '^ ' ;\
then revision+=M ;\
fi ;\
else revision=unknown ;\
fi ;\
echo $$revision > $@
revision: revision.stamp
@cmp -s $< $@ || cp -f $< $@
mostlyclean::
clean:: mostlyclean
rm -f revision.stamp revision
distclean:: clean
rm -f config.log config.status
$(srcdir)/configure: $(srcdir)/configure.ac $(srcdir)/config.m4
$(call MAINTAINER,$@,cd $(@D) && autoconf -W all,error)
$(srcdir)/config.h.in: $(srcdir)/configure.ac $(srcdir)/config.m4
$(call MAINTAINER,$@,cd $(@D) && autoheader -f -W all,error)
config.h: config.status config.h.in
./$< --header=$@
touch $@
ifeq ($(filter %clean,$(MAKECMDGOALS)),)
Makefile: config.status Makefile.in
./$< --file=$@
touch $@
endif
config.status: $(srcdir)/configure $(srcdir)/config.h.in
if test -x $@; then ./$@ -recheck; else $< '--srcdir=/home/seti/riscv-gnu-toolchain/gcc/libcody' '--cache-file=./config.cache' '--prefix=/opt/riscv' '--disable-shared' '--disable-threads' '--disable-tls' '--with-system-zlib' '--with-newlib' '--with-sysroot=/opt/riscv/riscv32-unknown-elf' '--disable-libmudflap' '--disable-libssp' '--disable-libquadmath' '--disable-libgomp' '--disable-nls' '--disable-tm-clone-registry' '--disable-multilib' '--with-abi=ilp32' '--with-arch=rv32imc' '--with-tune=rocket' '--with-isa-spec=2.2' '--enable-languages=c,c++,lto' '--program-transform-name=s&^&riscv32-unknown-elf-&' '--disable-option-checking' '--build=x86_64-pc-linux-gnu' '--host=x86_64-pc-linux-gnu' '--target=riscv32-unknown-elf' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu' 'target_alias=riscv32-unknown-elf' 'CXX=g++' 'CXXFLAGS=-g -O2 ' 'LDFLAGS=-static-libstdc++ -static-libgcc '; fi
mostlyclean::
clean:: mostlyclean
rm -f $(shell find $(srcdir) -name '*~')
distclean:: clean
rm -f config.h
maintainer-clean:: distclean
rm -f $(srcdir)/config.h.in
.PHONY: all check clean distclean maintainer-clean mostlyclean
CXXFLAGS/ := -I$(srcdir)
LIBCODY.O := buffer.o client.o fatal.o netclient.o netserver.o \
resolver.o packet.o server.o
all:: libcody.a
libcody.a: $(LIBCODY.O)
$(AR) -cr $@ $^
$(RANLIB) $@
mostlyclean::
clean:: mostlyclean
rm -f $(LIBCODY.O) $(LIBCODY.O:.o=.d)
rm -f libcody.a
CXXFLAGS/fatal.cc = -DSRCDIR='"$(srcdir)"'
fatal.o: Makefile revision
install::
$(INSTALL) -d $(libdir) $(includedir)
$(INSTALL) libcody.a $(libdir)
$(INSTALL) $(srcdir)/cody.hh $(includedir)
ifeq ($(filter clean%,$(MAKECMDGOALS)),)
-include $(LIBCODY.O:.o=.d)
endif