xref: /openbsd-src/include/Makefile (revision 24f9d669f84293935af75b1b5351b987dc03ad0b)
1*24f9d669Sguenther#	$OpenBSD: Makefile,v 1.232 2024/08/12 20:56:55 guenther Exp $
24b826ba8Sderaadt#	$NetBSD: Makefile,v 1.59 1996/05/15 21:36:43 jtc Exp $
3df930be7Sderaadt
4df930be7Sderaadt#	@(#)Makefile	5.45.1.1 (Berkeley) 5/6/91
5df930be7Sderaadt
6df930be7Sderaadt# The ``rm -rf''s used below are safe because rm doesn't follow symbolic
7df930be7Sderaadt# links.
8df930be7Sderaadt
9df930be7Sderaadt
10eb158ea4Sespie.include <bsd.own.mk>
11eb158ea4Sespie
12249f38f2SguentherFILES=	a.out.h ar.h asr.h assert.h \
13249f38f2Sguenther	bitstring.h blf.h bsd_auth.h \
14249f38f2Sguenther	complex.h cpio.h ctype.h curses.h \
1555a3ec30Skrw	db.h dirent.h dlfcn.h \
167c8f01ebSmpi	elf.h elf_abi.h err.h errno.h \
17249f38f2Sguenther	fenv.h float.h fnmatch.h fstab.h fts.h ftw.h \
18249f38f2Sguenther	getopt.h glob.h grp.h \
19249f38f2Sguenther	icdb.h ieeefp.h ifaddrs.h inttypes.h iso646.h \
20249f38f2Sguenther	kvm.h \
21249f38f2Sguenther	langinfo.h libgen.h limits.h link.h link_elf.h locale.h login_cap.h \
22249f38f2Sguenther	math.h md5.h memory.h \
23249f38f2Sguenther	ndbm.h netdb.h netgroup.h nlist.h nl_types.h \
24249f38f2Sguenther	paths.h poll.h pthread.h pthread_np.h pwd.h \
25249f38f2Sguenther	ranlib.h readpassphrase.h regex.h resolv.h rmd160.h \
26249f38f2Sguenther	sched.h search.h setjmp.h semaphore.h sha1.h sha2.h \
27249f38f2Sguenther	signal.h siphash.h sndio.h spawn.h stdbool.h stddef.h \
28*24f9d669Sguenther	stdio.h stdio_ext.h stdlib.h string.h strings.h sysexits.h \
29249f38f2Sguenther	tar.h tgmath.h tib.h time.h ttyent.h \
3046c354aaSschwarze	uchar.h unistd.h utime.h utmp.h uuid.h \
31249f38f2Sguenther	vis.h  \
32249f38f2Sguenther	wchar.h wctype.h
33ebe856fcShugh
345bf4abd5SderaadtMFILES=	frame.h
357c5b55ffSguentherLFILES=	endian.h fcntl.h syslog.h termios.h stdarg.h stdint.h varargs.h
36df930be7Sderaadt
37df930be7SderaadtDIRS=	arpa protocols rpc rpcsvc
3842546326ShenningLDIRS=	crypto ddb dev isofs miscfs msdosfs net netinet netinet6 \
399e593bd9Stedu	netmpls net80211 nfs ntfs scsi sys ufs uvm
40df930be7Sderaadt
4159875271Sespie# Places that need a prerequisite target met before includes
42b718d5d4StbPRDIRS=	../lib/libcrypto ../lib/librpcsvc
4359875271Sespie
4464c414e1Sniklas# Directories with an includes target
45e7a945d3SmartijnRDIRS=	../lib/libagentx ../lib/libcbor ../lib/libcurses ../lib/libedit \
46e7a945d3Smartijn	../lib/libelf ../lib/libevent ../lib/libexpat ../lib/libfido2 \
47e7a945d3Smartijn	../lib/libform ../lib/libfuse ../lib/libkeynote ../lib/libmenu \
482b5055b0Ssthen	../lib/libossaudio ../lib/libpanel ../lib/libpcap \
49249f38f2Sguenther	../lib/libradius \
502b5055b0Ssthen	../lib/libskey ../lib/libssl  ../lib/libtls \
51b600beedSjsing	../lib/libusbhid ../lib/libutil ../lib/libz \
5266e500ceSmortimer	../usr.bin/lex ../gnu/lib/libexecinfo ../gnu/lib/libreadline \
536c13836aSderaadt	../sys/arch/${MACHINE}
54eb158ea4Sespie
55d8ee3b15Skettenis.if ${BUILD_GCC3:L} == "yes"
56cc1fc287SjsgRDIRS+= ../gnu/usr.bin/gcc
5759875271SespiePRDIRS+= ../gnu/lib/libstdc++
58d8ee3b15Skettenis.endif
59d8ee3b15Skettenis.if ${BUILD_GCC4:L} == "yes"
60b718d5d4StbPRDIRS+= ../gnu/lib/libstdc++-v3 ../gnu/usr.bin/cc/include
61d8ee3b15Skettenis.endif
62d8ee3b15Skettenis.if ${BUILD_CLANG:L} == "yes"
63f950054fSpatrickRDIRS+= ../gnu/lib/libcxxabi ../gnu/lib/libcxx \
642584ca0bSjsg	 ../gnu/usr.bin/clang/libLLVM
65eb158ea4Sespie.endif
6664c414e1Sniklas
6759875271Sespie# prereq implies includes
6859875271SespieRDIRS += ${PRDIRS}
6959875271Sespie
70df930be7SderaadtNOOBJ=	noobj
71df930be7Sderaadt
72df930be7Sderaadt# Change SYS_INCLUDE in bsd.own.mk to "symlinks" if you don't want copies
73df930be7SderaadtSYS_INCLUDE?=	copies
74b70a26d9Srobert
7559875271SespieRUN_MAKE = if test -f Makefile.bsd-wrapper; then ${MAKE} -f Makefile.bsd-wrapper $@; else ${MAKE} $@; fi
7659875271Sespie
7764c414e1Sniklasprereq:
78efeb256fSespie	@for i in ${PRDIRS}; do \
79aa4b115cSniklas		echo preparing in ${.CURDIR}/$$i; \
8059875271Sespie		cd ${.CURDIR}/$$i && ${RUN_MAKE}; \
8164c414e1Sniklas	done
8264c414e1Sniklas
83c8b9456aSderaadtincludes:
84df930be7Sderaadt	@echo installing ${FILES}
85efeb256fSespie	@for i in ${FILES}; do \
86df930be7Sderaadt		cmp -s $$i ${DESTDIR}/usr/include/$$i || \
879c44650eSmillert		    ${INSTALL} ${INSTALL_COPY} -m 444 $$i ${DESTDIR}/usr/include/$$i; \
88df930be7Sderaadt	done
89df930be7Sderaadt	@echo installing ${DIRS}
90efeb256fSespie	@for i in ${DIRS}; do \
917fea8c2aSdownsj		${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
92df930be7Sderaadt			${DESTDIR}/usr/include/$$i; \
93efeb256fSespie		cd ${.CURDIR}/$$i && for j in *.[ih]; do \
94df930be7Sderaadt			cmp -s $$j ${DESTDIR}/usr/include/$$i/$$j || \
959c44650eSmillert			${INSTALL} ${INSTALL_COPY} -m 444 $$j ${DESTDIR}/usr/include/$$i/$$j; \
96efeb256fSespie		done; \
97df930be7Sderaadt	done
98df930be7Sderaadt	@echo installing ${LFILES}
99efeb256fSespie	@for i in ${LFILES}; do \
100efeb256fSespie		rm -f ${DESTDIR}/usr/include/$$i && \
101df930be7Sderaadt		ln -s sys/$$i ${DESTDIR}/usr/include/$$i; \
102df930be7Sderaadt	done
103df930be7Sderaadt	@echo installing ${MFILES}
104efeb256fSespie	@for i in ${MFILES}; do \
105efeb256fSespie		rm -f ${DESTDIR}/usr/include/$$i && \
106df930be7Sderaadt		ln -s machine/$$i ${DESTDIR}/usr/include/$$i; \
107df930be7Sderaadt	done
108efeb256fSespie	@for i in ${RDIRS}; do \
109dd9d2c6eSderaadt		echo installing in ${.CURDIR}/$$i; \
11059875271Sespie		cd ${.CURDIR}/$$i && ${RUN_MAKE}; \
1119eed8a4cSniklas	done
11276c3425bStb	chown -RP ${BINOWN}:${BINGRP} ${DESTDIR}/usr/include
1130cb6afd9Snaddy	find ${DESTDIR}/usr/include \
1140cb6afd9Snaddy		-type f -exec chmod a=r {} + -o \
1150cb6afd9Snaddy		\( -type d -o -type l \) -exec chmod -h u=rwx,go=rx {} +
116df930be7Sderaadt
117df930be7Sderaadtcopies:
118df930be7Sderaadt	@echo copies: ${LDIRS}
119efeb256fSespie	@for i in ${LDIRS}; do \
120efeb256fSespie		rm -rf ${DESTDIR}/usr/include/$$i && \
1217fea8c2aSdownsj		${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
122df930be7Sderaadt			${DESTDIR}/usr/include/$$i ; \
123df930be7Sderaadt	done
124df930be7Sderaadt	cd ../sys; \
125df930be7Sderaadt	pax -rw -pa -L \
126983d6f98Sderaadt	    `find ${LDIRS} -follow -type f -name '*.h' '!' \
1271042567dSkettenis	    '(' -path 'dev/microcode/*' -or -path 'dev/pci/drm/*' ')' \
128983d6f98Sderaadt	    -print` ${DESTDIR}/usr/include
129be960fe6Smiod	cd ${DESTDIR}/usr/include && rm -rf ${MACHINE} ${MACHINE_CPU} machine
1307fea8c2aSdownsj	${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
131343f06ecSespie		${DESTDIR}/usr/include/${MACHINE}
1321cfd633eSitojun	pax -rw -pa -s "|\.\./sys/arch/${MACHINE}/include||" \
1331cfd633eSitojun	    ../sys/arch/${MACHINE}/include/*.h \
1341cfd633eSitojun	    ${DESTDIR}/usr/include/${MACHINE}
135be960fe6Smiod	if test ${MACHINE} != ${MACHINE_CPU} -a \
136be960fe6Smiod	    -d ../sys/arch/${MACHINE_CPU}/include; then \
1377fea8c2aSdownsj		${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
138be960fe6Smiod	    	    ${DESTDIR}/usr/include/${MACHINE_CPU}; \
139be960fe6Smiod		pax -rw -pa -s "|\.\./sys/arch/${MACHINE_CPU}/include||" \
140be960fe6Smiod		    ../sys/arch/${MACHINE_CPU}/include/*.h \
141be960fe6Smiod		    ${DESTDIR}/usr/include/${MACHINE_CPU}; \
142df930be7Sderaadt	fi
143343f06ecSespie	ln -sf ${MACHINE} ${DESTDIR}/usr/include/machine; \
144df930be7Sderaadt
145df930be7Sderaadtsymlinks:
146df930be7Sderaadt	@echo symlinks: ${LDIRS}
147df930be7Sderaadt	@for i in ${LDIRS}; do \
148efeb256fSespie		rm -rf ${DESTDIR}/usr/include/$$i && \
149df930be7Sderaadt		ln -s /sys/$$i ${DESTDIR}/usr/include/$$i; \
150df930be7Sderaadt	done
151be960fe6Smiod	cd ${DESTDIR}/usr/include && rm -rf ${MACHINE} ${MACHINE_CPU} machine
152343f06ecSespie	ln -s /sys/arch/${MACHINE}/include ${DESTDIR}/usr/include/${MACHINE}
153be960fe6Smiod	if test ${MACHINE} != ${MACHINE_CPU} -a \
154be960fe6Smiod	    -d ../sys/arch/${MACHINE_CPU}/include ; then \
155be960fe6Smiod		ln -s /sys/arch/${MACHINE_CPU}/include \
156be960fe6Smiod		    ${DESTDIR}/usr/include/${MACHINE_CPU} ; \
157df930be7Sderaadt	fi
158efeb256fSespie	ln -sf ${MACHINE} ${DESTDIR}/usr/include/machine
159df930be7Sderaadt
160c8b9456aSderaadtincludes: ${SYS_INCLUDE}
161df930be7Sderaadt
162efeb256fSespie.PHONY: prereq includes copies symlink
163c8b9456aSderaadt.include <bsd.prog.mk>
164