summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sup/Makefile
blob: fce18cf35b23743d295dc1dc82c8245022e763b9 (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
# Copyright (c) 1992,1991 Carnegie Mellon University
# All Rights Reserved.
# 
# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright
# notice and this permission notice appear in all copies of the
# software, derivative works or modified versions, and any portions
# thereof, and that both notices appear in supporting documentation.
#
# CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
# CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
# ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
#
# Carnegie Mellon requests users of this software to return to
#
#  Software Distribution Coordinator   or   Software.Distribution@CS.CMU.EDU
#  School of Computer Science
#  Carnegie Mellon University
#  Pittsburgh PA 15213-3890
#
# any improvements or extensions that they make and grant Carnegie the rights
# to redistribute these changes.
######################################################################
# Makefile to build sup (the client side), supfilesrv (the repository
# side, and supscan (used by the repository. If you only want to sup
# files from CMU, just build sup.
# The header files: c.h, libc.h and sysent.h are only
# necessary if you are compiling on a non-Mach system. Likewise the
# files in libextra.a are normally found in libcs.a on a Mach system.
# DOPRINT_VA is used by vprintf.c and should be defined if your version
# of libc/doprnt.c defines the routine _doprnt_va. If it defines _doprnt
# instead, leave DORPINT_VA undefined.
######################################################################
#
# If you need to build a sup for export outside of North America use
# 	"make EXPORTABLE_SYSTEM=true"
# this will remove (not use) any vestiges of crypt code that is present
# on the system.
#
# If you have crypt/crypt.c and /usr/lib/libcrypt.a, you will be building
# a system that uses the SUP crypt mechanism by default.
#
SITE			= NETBSD
#SITE			= CMUCS
NETBSD_DEFINES		= -UMACH -DVAR_TMP -DHAS_DAEMON
AFS_DEFINES		= -DAFS -I/usr/afsws/include
OSF_DEFINES		= -UMACH -DOSF -D_BSD -noshrlib -g -DNEED_VSNPRINTF -DVAR_TMP
CMUCS_DEFINES		= -DMACH -DDOPRINT_VA -DNEED_VPRINTF
NON_MACH_DEFINES	= -UMACH
#DEFS			= -UCMUCS -UCMU  ${${SITE}_DEFINES}
DEFS			= -UCMUCS -UCMU  ${NETBSD_DEFINES}

#INSTALLATION PARAMETERS
NETBSD_BINDIR		= /usr/local/bin
NETBSD_MAN1		= /usr/local/man/man1
NETBSD_MAN8		= /usr/local/man/man8

CFLAGS			= ${DEFS} -O -I.

SUPCL			= supcmain.o supcvers.o supcparse.o supcname.o \
			  supcmisc.o supcmeat.o
SUPS			= scm.o scmio.o stree.o log.o supmsg.o netcrypt.o
EXTRA			= atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o  \
			  path.o quit.o run.o salloc.o skipto.o  vprintf.o


PROGRAMS		= sup supscan supfilesrv
MAN1			= sup.1
MAN8			= supservers.8

AFS_LIBPATH		= /usr/afs/lib
AFS_LIBS		= -L${AFS_LIBPATH}/afs -lkauth -lprot -L${AFS_LIBPATH} -lubik -lauth -lrxkad -lsys -ldes -lrx -llwp -lcmd -lcom_err -lc ${AFS_LIBPATH}/afs/util.a

.if exists(/usr/lib/libcrypt.a) && exists(${.CURDIR}/crypt/crypt.c) && !defined(EXPORTABLE_SYSTEM)
USE_CRYPT		= yes
.endif

.if defined(USE_CRYPT)
NETBSD_LIBS		= -lcrypt -lutil
.else
NETBSD_LIBS		= -lutil
.endif
CMUCS_LIBS		= -lsys
OSF_LIBS		= -lbsd
LIBS			= libextra.a
sup_OFILES		= ${SUPCL} ${SUPS}
supfilesrv_OFILES	= supfilesrv.o scan.o ${SUPS}
supfilesrv_LIBS		= libextra.a 
supscan_OFILES		= supscan.o stree.o scan.o


all: ${PROGRAMS}
.if defined(USE_CRYPT)
	@echo "WARNING: You have built a NON-exportable version of sup because it uses crypt()!"
	@echo "	To build a crypt-clean version define EXPORTABLE_SYSTEM=true and make."
.endif

sup: ${sup_OFILES} ${LIBS}
	${CC} ${CFLAGS} -o sup ${sup_OFILES} ${LIBS} ${NETBSD_LIBS}

supfilesrv: ${supfilesrv_OFILES} ${supfilesrv_LIBS}
	${CC} ${CFLAGS} -o supfilesrv ${supfilesrv_OFILES} ${supfilesrv_LIBS} ${NETBSD_LIBS}

supscan:  ${supscan_OFILES} ${LIBS}
	${CC} ${CFLAGS} -o supscan ${supscan_OFILES} ${LIBS} ${NETBSD_LIBS}

libextra.a: ${EXTRA}
	ar r libextra.a $?
	ranlib libextra.a

clean:
	rm -f ${PROGRAMS} libextra.a netcrypt.c *.o core a.out

install:
	install -cs -m 555 -o bin -g bin ${PROGRAMS} ${NETBSD_BINDIR}
	install -c -m 444 -o bin -g bin ${MAN1} ${NETBSD_MAN1}
	install -c -m 444 -o bin -g bin ${MAN8} ${NETBSD_MAN8}

package: install
	pkg_create -c pkg/+ONELINE -d pkg/+DESC -f pkg/+PLIST sup_bin

netcrypt.c: crypt.diffs
.if defined(USE_CRYPT)
	ed - crypt/crypt.c < crypt.diffs
.else
	@echo "[ Using netcryptvoid.c ]"
	cp netcryptvoid.c netcrypt.c
.endif

scan.o:	sup.h
scm.o:	sup.h
scmio.o: sup.h supmsg.h
stree.o: sup.h
supcmain.o: sup.h supmsg.h supcdefs.h
supcmeat.o: sup.h supmsg.h supcdefs.h
supcmisc.o: sup.h supmsg.h supcdefs.h
supcname.o: sup.h supmsg.h supcdefs.h
supcparse.o: sup.h supmsg.h supcdefs.h
supfilesrv.o: sup.h supmsg.h
supmsg.o: sup.h supmsg.h
supscan.o: sup.h
netcryptvoid.o: sup.h supmsg.h
netcrypt.o: sup.h supmsg.h
OpenPOWER on IntegriCloud