-
Notifications
You must be signed in to change notification settings - Fork 8
/
Makefile
executable file
·109 lines (97 loc) · 3.85 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
############################################################################
#
# Another Programmer's Editor Makefile Template
#
# This is a template Makefile for a simple program.
# It is meant to serve as a starting point for creating a portable
# Makefile, suitable for use under ports systems like *BSD ports,
# MacPorts, Gentoo Portage, etc.
#
# The goal is a Makefile that can be used without modifications
# on any Unix-compatible system.
#
# Variables that are conditionally assigned (with ?=) can be overridden
# by the environment or via the command line as follows:
#
# make VAR=value
#
# For example, MacPorts installs to /opt/local instead of the default
# ../local, and hence might use the following:
#
# make PREFIX=/opt/local
#
# Different systems may also use different compilers and keep libraries in
# different locations:
#
# make CC=gcc CFLAGS=-O2 LDFLAGS="-L/usr/X11R6 -lX11"
#
# Variables can also inheret values from parent Makefiles (as in *BSD ports).
#
# Lastly, they can be overridden by the environment, e.g.
#
# setenv CFLAGS "-O -Wall -pipe" # C-shell and derivatives
# export CFLAGS="-O -Wall -pipe" # Bourne-shell and derivatives
# make
#
# All these override methods allow the Makefile to respect the environment
# in which it is used.
#
# You can append values to variables within this Makefile (with +=).
# However, this should not be used to add compiler-specific flags like
# -Wall, as this would disrespect the environment.
#
# History:
# Date Name Modification
# 2021-12-20 Jason Bacon Begin
############################################################################
# Install in ../local, unless defined by the parent Makefile, the
# environment, or a command line option such as PREFIX=/opt/local.
# FreeBSD ports sets this to /usr/local, MacPorts to /opt/local, etc.
PREFIX ?= ../local
# Where to find local libraries and headers. If you want to use libraries
# from outside ${PREFIX} (not usually recommended), you can set this
# independently.
LOCALBASE ?= ${PREFIX}
# Allow caller to override either MANPREFIX or MANDIR
MANPREFIX ?= ${PREFIX}
MANDIR ?= ${MANPREFIX}/man
DATADIR ?= ${PREFIX}/share/auto-admin
############################################################################
# Assume first command in PATH. Override with full pathnames if necessary.
# E.g. "make INSTALL=/usr/local/bin/ginstall"
# Do not place flags here (e.g. RM = rm -f). Just provide the command
# and let flags be specified separately.
CP ?= cp
MV ?= mv
MKDIR ?= mkdir
LN ?= ln
RM ?= rm
# No full pathnames for these. Allow PATH to dtermine which one is used
# in case a locally installed version is preferred.
PRINTF ?= printf
INSTALL ?= install
############################################################################
# Standard targets required by package managers
.PHONY: all install help
all:
@echo "Nothing to build."
############################################################################
# Install all target files (binaries, libraries, docs, etc.)
install:
${MKDIR} -p ${DESTDIR}${PREFIX}/bin ${DESTDIR}${PREFIX}/sbin \
${DESTDIR}${MANDIR}/man8 ${DESTDIR}${DATADIR}
${INSTALL} -m 0755 Sys-scripts/* ${DESTDIR}${PREFIX}/sbin
${INSTALL} -m 0755 User-scripts/* ${DESTDIR}${PREFIX}/bin
${INSTALL} -m 0644 Man/* ${DESTDIR}${MANDIR}/man8
${CP} -R Data/* ${DESTDIR}${DATADIR}
help:
@printf "Usage: make [VARIABLE=value ...] all\n\n"
@printf "Some common tunable variables:\n\n"
@printf "\tCC [currently ${CC}]\n"
@printf "\tCFLAGS [currently ${CFLAGS}]\n"
@printf "\tCXX [currently ${CXX}]\n"
@printf "\tCXXFLAGS [currently ${CXXFLAGS}]\n"
@printf "\tF77 [currently ${F77}]\n"
@printf "\tFC [currently ${FC}]\n"
@printf "\tFFLAGS [currently ${FFLAGS}]\n\n"
@printf "View Makefile for more tunable variables.\n\n"