149 lines
3.4 KiB
Makefile
149 lines
3.4 KiB
Makefile
#
|
|
# Copyright 2005-2006 Timo Hirvonen
|
|
#
|
|
# This file is licensed under the GPLv2.
|
|
#
|
|
# cmd macro copied from kbuild (Linux kernel build system)
|
|
|
|
# Build verbosity:
|
|
# make V=0 silent
|
|
# make V=1 clean (default)
|
|
# make V=2 verbose
|
|
|
|
# build verbosity (0-2), default is 1
|
|
ifneq ($(origin V),command line)
|
|
V := 1
|
|
endif
|
|
ifneq ($(findstring s,$(MAKEFLAGS)),)
|
|
V := 0
|
|
endif
|
|
|
|
ifeq ($(V),2)
|
|
quiet =
|
|
Q =
|
|
else
|
|
ifeq ($(V),1)
|
|
quiet = quiet_
|
|
Q = @
|
|
else
|
|
quiet = silent_
|
|
Q = @
|
|
endif
|
|
endif
|
|
|
|
# simple wrapper around install(1)
|
|
#
|
|
# - creates directories automatically
|
|
# - adds $(DESTDIR) to front of files
|
|
INSTALL := @$(topdir)/scripts/install
|
|
INSTALL_LOG := $(topdir)/.install.log
|
|
|
|
dependencies := $(wildcard .dep-*)
|
|
clean := $(dependencies)
|
|
distclean :=
|
|
|
|
LC_ALL := C
|
|
LANG := C
|
|
|
|
export INSTALL_LOG LC_ALL LANG GINSTALL
|
|
|
|
# remove files generated by make
|
|
clean:
|
|
rm -f $(clean)
|
|
|
|
# remove files generated by make and configure
|
|
distclean: clean
|
|
rm -f $(distclean)
|
|
|
|
uninstall:
|
|
@$(topdir)/scripts/uninstall
|
|
|
|
%.o: %.S
|
|
$(call cmd,as)
|
|
|
|
# object files for programs and static libs
|
|
%.o: %.c
|
|
$(call cmd,cc)
|
|
|
|
%.o: %.cc
|
|
$(call cmd,cxx)
|
|
|
|
%.o: %.cpp
|
|
$(call cmd,cxx)
|
|
|
|
# object files for shared libs
|
|
%.lo: %.c
|
|
$(call cmd,cc_lo)
|
|
|
|
%.lo: %.cc
|
|
$(call cmd,cxx_lo)
|
|
|
|
%.lo: %.cpp
|
|
$(call cmd,cxx_lo)
|
|
|
|
# CC for program object files (.o)
|
|
quiet_cmd_cc = CC $@
|
|
cmd_cc = $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
|
|
|
|
# HOSTCC for program object files (.o)
|
|
quiet_cmd_hostcc = HOSTCC $@
|
|
cmd_hostcc = $(HOSTCC) -c $(HOST_CFLAGS) -o $@ $<
|
|
|
|
# CC for shared library and dynamically loadable module objects (.lo)
|
|
quiet_cmd_cc_lo = CC $@
|
|
cmd_cc_lo = $(CC) -c $(CPPFLAGS) $(CFLAGS) $(SOFLAGS) -o $@ $<
|
|
|
|
# LD for programs, optional parameter: libraries
|
|
quiet_cmd_ld = LD $@
|
|
cmd_ld = $(LD) $(LDFLAGS) -o $@ $^ $(1)
|
|
|
|
# HOSTLD for programs, optional parameter: libraries
|
|
quiet_cmd_hostld = HOSTLD $@
|
|
cmd_hostld = $(HOSTLD) $(HOST_LDFLAGS) -o $@ $^ $(1)
|
|
|
|
# LD for shared libraries, optional parameter: libraries
|
|
quiet_cmd_ld_so = LD $@
|
|
cmd_ld_so = $(LD) $(LDSOFLAGS) $(LDFLAGS) -o $@ $^ $(1)
|
|
|
|
# LD for dynamically loadable modules, optional parameter: libraries
|
|
quiet_cmd_ld_dl = LD $@
|
|
cmd_ld_dl = $(LD) $(LDDLFLAGS) $(LDFLAGS) -o $@ $^ $(1)
|
|
|
|
# CXX for program object files (.o)
|
|
quiet_cmd_cxx = CXX $@
|
|
cmd_cxx = $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
|
|
|
|
# CXX for shared library and dynamically loadable module objects (.lo)
|
|
quiet_cmd_cxx_lo = CXX $@
|
|
cmd_cxx_lo = $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(SOFLAGS) -o $@ $<
|
|
|
|
# CXXLD for programs, optional parameter: libraries
|
|
quiet_cmd_cxxld = CXXLD $@
|
|
cmd_cxxld = $(CXXLD) $(CXXLDFLAGS) -o $@ $^ $(1)
|
|
|
|
# CXXLD for shared libraries, optional parameter: libraries
|
|
quiet_cmd_cxxld_so = CXXLD $@
|
|
cmd_cxxld_so = $(CXXLD) $(LDSOFLAGS) $(CXXLDFLAGS) -o $@ $^ $(1)
|
|
|
|
# CXXLD for dynamically loadable modules, optional parameter: libraries
|
|
quiet_cmd_cxxld_dl = CXXLD $@
|
|
cmd_cxxld_dl = $(CXXLD) $(LDDLFLAGS) $(CXXLDFLAGS) -o $@ $^ $(1)
|
|
|
|
# create archive
|
|
quiet_cmd_ar = AR $@
|
|
cmd_ar = $(AR) $(ARFLAGS) $@ $^
|
|
|
|
# assembler
|
|
quiet_cmd_as = AS $@
|
|
cmd_as = $(AS) -c $(ASFLAGS) -o $@ $<
|
|
|
|
cmd = @$(if $($(quiet)cmd_$(1)),echo ' $(call $(quiet)cmd_$(1),$(2))' &&) $(call cmd_$(1),$(2))
|
|
|
|
ifneq ($(dependencies),)
|
|
-include $(dependencies)
|
|
endif
|
|
|
|
.SECONDARY:
|
|
|
|
.PHONY: clean distclean uninstall
|