summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysinstall/Makefile
blob: 4c760a2569d3360d9a39a05ed6682c7d24638279 (plain)
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# $FreeBSD$

.if ${MACHINE_ARCH} != "ia64"
_wizard=	wizard.c
.endif

PROG=	sysinstall
MAN=	sysinstall.8
SRCS=	anonFTP.c cdrom.c command.c config.c devices.c dhcp.c \
	disks.c dispatch.c dist.c dmenu.c doc.c dos.c floppy.c \
	ftp.c globals.c http.c index.c install.c installUpgrade.c keymap.c \
	label.c main.c makedevs.c media.c menus.c misc.c modules.c \
	mouse.c msg.c network.c nfs.c options.c package.c \
	system.c tape.c tcpip.c termcap.c ttys.c ufs.c user.c \
	variable.c ${_wizard} keymap.h countries.h

CFLAGS+= -DUSE_GZIP=1
.if ${MACHINE} == "pc98"
CFLAGS+= -DPC98
.endif
CFLAGS+= -I${.CURDIR}/../../gnu/lib/libdialog -I.

DPADD=	${LIBDIALOG} ${LIBNCURSES} ${LIBUTIL} ${LIBDISK} ${LIBFTPIO}
LDADD=	-ldialog -lncurses -lutil -ldisk -lftpio

#
# When distributions have both UP and SMP kernels sysinstall
# will probe for the number of cpus on the target machine and
# automatically select which is appropriate.  This can be overridden
# through the menus or both kernels can be installed (with the
# most "appropriate" one setup as /boot/kernel).  For now this
# is done for i386 and amd64; for other systems support must be
# added to identify the cpu count if acpi and MPTable probing
# is insufficient.
#
# The unmber of cpus probed is passed through the environment in
# VAR_NCPUS ("ncpus") to scripts.
#
# Note that WITH_SMP is a compile time option that enables the
# builtin menus for the SMP kernel configuration.  If this kernel
# is not built (see release/Makefile) then this should not be
# enabled as sysinstall may try to select an SMP kernel config
# where none is available.  This option should not be needed--we
# should probe for an SMP kernel in the distribution but doing
# that is painful because of media changes and the structure of
# sysinstall so for now it's a priori.
#
.if ${MACHINE} == "i386" || ${MACHINE_ARCH} == "amd64"
SRCS+=	acpi.c biosmptable.c
# NB: HEAD has SMP in GENERIC so only one kernel
#CFLAGS+=-DWITH_SMP	
DPADD+=	${LIBDEVINFO}
LDADD+=	-ldevinfo
.endif

CLEANFILES=	makedevs.c rtermcap
CLEANFILES+=	keymap.tmp keymap.h countries.tmp countries.h

.if exists(${.CURDIR}/../../share/termcap/termcap.src)
RTERMCAP=	TERMCAP=${.CURDIR}/../../share/termcap/termcap.src ./rtermcap
.else
RTERMCAP=	./rtermcap
.endif

makedevs.c:	Makefile rtermcap
	echo '#include <sys/types.h>' > makedevs.c
	${RTERMCAP} ansi | \
		file2c 'const char termcap_ansi[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} cons25w | \
		file2c 'const char termcap_cons25w[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} cons25 | \
		file2c 'const char termcap_cons25[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} cons25-m | \
		file2c 'const char termcap_cons25_m[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} cons25r | \
		file2c 'const char termcap_cons25r[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} cons25r-m | \
		file2c 'const char termcap_cons25r_m[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} cons25l1 | \
		file2c 'const char termcap_cons25l1[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} cons25l1-m | \
		file2c 'const char termcap_cons25l1_m[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} vt100 | \
		file2c 'const char termcap_vt100[] = {' ',0};' \
		>> makedevs.c
	${RTERMCAP} xterm | \
		file2c 'const char termcap_xterm[] = {' ',0};' \
		>> makedevs.c

build-tools:	rtermcap

rtermcap:	rtermcap.c
	${CC} -o ${.TARGET} ${.ALLSRC} -ltermcap

.if ${MACHINE} == "pc98"
KEYMAPS= jp.pc98 jp.pc98.iso
.else
KEYMAPS= be.iso bg.bds.ctrlcaps bg.phonetic.ctrlcaps br275.iso \
	ce.iso2 cs.latin2.qwertz danish.iso el.iso07 \
	estonian.cp850 estonian.iso estonian.iso15 finnish.iso fr.iso \
	german.iso gr.elot.acc gr.us101.acc  hr.iso hu.iso2.101keys \
	it.iso icelandic.iso jp.106 norwegian.iso pl_PL.ISO8859-2 \
	pt.iso ru.koi8-r si.iso sk.iso2 spanish.iso swedish.iso \
	swissfrench.iso \
	swissgerman.iso ua.koi8-u ua.koi8-u.shift.alt uk.iso us.dvorak \
	us.iso us.pc-ctrl us.unix
.endif

keymap.h:
	rm -f keymap.tmp
	for map in ${KEYMAPS} ; do \
		KEYMAP_PATH=${.CURDIR}/../../share/syscons/keymaps \
			kbdcontrol -L $$map | \
			sed -e '/^static accentmap_t/,$$d' >> keymap.tmp ; \
	done
	echo "static struct keymapInfo keymapInfos[] = {" >> keymap.tmp
	for map in ${KEYMAPS} ; do \
		echo -n '	{ "'$$map'", ' >> keymap.tmp ; \
		echo "&keymap_$$map }," | tr '[-.]' '_' >> keymap.tmp ; \
	done
	( echo "	{ NULL, NULL }"; echo "};" ; echo "" ) >> keymap.tmp
	mv keymap.tmp keymap.h

countries.h: ${.CURDIR}/../../share/misc/iso3166
	rm -f countries.tmp
	awk 'BEGIN { \
	    FS = "\t"; \
	    num = 1; \
	    print "DMenu MenuCountry = {"; \
	    print "    DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,"; \
	    print "    \"Country Selection\","; \
	    print "    \"Please choose a country, region, or group.\\n\""; \
	    print "    \"Select an item using [SPACE] or [ENTER].\","; \
	    printf "    NULL,\n    NULL,\n    { "; \
	} \
	/^[[:space:]]*#/ {next;} \
	{if (num > 1) {printf "      ";} \
	    print "{ \"" num "\", \"" $$4 "\"" \
	    ", dmenuVarCheck, dmenuSetCountryVariable" \
	    ", NULL, VAR_COUNTRY \"=" tolower($$1) "\" },"; \
	    ++num;} \
	END {print "      { NULL } }\n};\n";}' < ${.ALLSRC} > countries.tmp
	mv countries.tmp ${.TARGET}

.include <bsd.prog.mk>
OpenPOWER on IntegriCloud