Add some .mk stubs to impersonate bsk .mk files to make writing our Makefiles easier. libeinfo, librc and rc now have their own seperate directories. More work is needed to tidy this up though.
This commit is contained in:
		| @@ -1,4 +0,0 @@ | ||||
| # Empty Makefile so that we can do this | ||||
| #include Makefile.$(FOO) | ||||
| # where FOO is unset. | ||||
| # This is needed as not all make implementations can optionally include a Makefile | ||||
| @@ -1,2 +0,0 @@ | ||||
| LDLIBS_LIBRC += -lkvm | ||||
| LDLIBS_RC += -lkvm | ||||
| @@ -1,2 +0,0 @@ | ||||
| LDLIBS_RC += -Wl,-Bdynamic -ldl | ||||
| CPPFLAGS += -D_BSD_SOURCE -D_XOPEN_SOURCE=500 | ||||
| @@ -1,2 +0,0 @@ | ||||
| LIBTERMCAP = -lncurses | ||||
| include Makefile.termcap | ||||
| @@ -1,2 +0,0 @@ | ||||
| CPPFLAGS_SSD = -DHAVE_PAM | ||||
| LDLIBS_RC += -lpam | ||||
| @@ -1,4 +0,0 @@ | ||||
| LIBTERMCAP ?= -ltermcap | ||||
| CPPFLAGS_LIBEINFO = -DHAVE_TERMCAP | ||||
| LDLIBS_LIBEINFO += $(LIBTERMCAP) | ||||
| LDLIBS_RC += $(LIBTERMCAP) | ||||
							
								
								
									
										25
									
								
								src/cc.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/cc.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| # Copyright 2008 Roy Marples | ||||
|  | ||||
| # Setup some good default CFLAGS | ||||
|  | ||||
| CFLAGS ?= -O2 -pipe | ||||
|  | ||||
| # GNU Make way of detecting gcc flags we can use | ||||
| check_gcc=$(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ | ||||
| 	  then echo "$(1)"; else echo "$(2)"; fi) | ||||
|  | ||||
| # pmake check for extra cflags  | ||||
| WEXTRA != for x in -Wdeclaration-after-statement -Wsequence-point -Wextra; do \ | ||||
| 	if $(CC) $$x -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ | ||||
| 	then echo -n "$$x "; fi \ | ||||
| 	done | ||||
|  | ||||
| # Loads of nice flags to ensure our code is good | ||||
| CFLAGS += -pedantic -std=c99 \ | ||||
|     -Wall -Wunused -Wimplicit -Wshadow -Wformat=2 \ | ||||
|     -Wmissing-declarations -Wno-missing-prototypes -Wwrite-strings \ | ||||
|     -Wbad-function-cast -Wnested-externs -Wcomment -Winline \ | ||||
|     -Wchar-subscripts -Wcast-align -Wno-format-nonliteral \ | ||||
|     $(call check_gcc, -Wdeclaration-after-statement) \ | ||||
|     $(call check_gcc, -Wsequence-point) \ | ||||
|     $(call check_gcc, -Wextra) $(WEXTRA) | ||||
							
								
								
									
										34
									
								
								src/default.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/default.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| # Copyright 2007-2008 Roy Marples  | ||||
|  | ||||
| CC ?= gcc | ||||
| AR ?= ar | ||||
| RANLIB ?= ranlib | ||||
| CFLAGS += -O2 -pipe | ||||
| LDFLAGS += -L. | ||||
| PICFLAG = -fPIC | ||||
|  | ||||
| # GNU Make way of detecting gcc flags we can use | ||||
| check_gcc=$(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ | ||||
| 	  then echo "$(1)"; else echo "$(2)"; fi) | ||||
|  | ||||
| # pmake check for extra cflags  | ||||
| WEXTRA != for x in -Wdeclaration-after-statement -Wsequence-point -Wextra; do \ | ||||
| 	if $(CC) $$x -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ | ||||
| 	then echo -n "$$x "; fi \ | ||||
| 	done | ||||
|  | ||||
| # Loads of nice flags to ensure our code is good | ||||
| CFLAGS += -pedantic -std=c99 \ | ||||
|     -Wall -Wunused -Wimplicit -Wshadow -Wformat=2 \ | ||||
|     -Wmissing-declarations -Wno-missing-prototypes -Wwrite-strings \ | ||||
|     -Wbad-function-cast -Wnested-externs -Wcomment -Winline \ | ||||
|     -Wchar-subscripts -Wcast-align -Wno-format-nonliteral \ | ||||
|     $(call check_gcc, -Wdeclaration-after-statement) \ | ||||
|     $(call check_gcc, -Wsequence-point) \ | ||||
|     $(call check_gcc, -Wextra) $(WEXTRA) | ||||
|  | ||||
| # For debugging. -Werror is pointless due to ISO C issues with dlsym | ||||
| #CFLAGS += -ggdb | ||||
|  | ||||
| TOPDIR = .. | ||||
| include $(TOPDIR)/default.mk | ||||
							
								
								
									
										55
									
								
								src/lib.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								src/lib.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| # rules to build a library | ||||
| # based on FreeBSD's bsd.lib.mk | ||||
|  | ||||
| # Copyright 2008 Roy Marples | ||||
|  | ||||
| SHLIB_NAME=		lib${LIB}.so.${SHLIB_MAJOR} | ||||
| SHLIB_LINK=		lib${LIB}.so | ||||
| SHLIBDIR?=		/lib | ||||
| SONAME?=		${SHLIB_NAME} | ||||
|  | ||||
| OBJS+=			${SRCS:.c=.o} | ||||
| SOBJS+=			${OBJS:.o=.So} | ||||
| _LIBS=			lib${LIB}.a ${SHLIB_NAME} | ||||
|  | ||||
| ECHO?=			echo | ||||
| AR?=			ar | ||||
| RANLIB?=		ranlib | ||||
| INSTALL?=		install | ||||
| LIBMODE?=		0444 | ||||
|  | ||||
| PICFLAG?=		-fPIC | ||||
|  | ||||
| INCDIR?=		/usr/include | ||||
| INCMODE?=		0444 | ||||
|  | ||||
| .SUFFIXES:		.So | ||||
|  | ||||
| .c.So: | ||||
| 	${CC} ${PICFLAG} -DPIC ${CFLAGS} ${CPPFLAGS} -c $< -o $@ | ||||
|  | ||||
| all: ${_LIBS} | ||||
|  | ||||
| lib${LIB}.a:	${OBJS} ${STATICOBJS} | ||||
| 	@${ECHO} building static library $@ | ||||
| 	${AR} rc $@ $^ | ||||
| 	${RANLIB} $@ | ||||
|  | ||||
|  | ||||
| ${SHLIB_NAME}:	${SOBJS} | ||||
| 	@${ECHO} building shared library $@ | ||||
| 	@rm -f $@ ${SHLIB_LINK} | ||||
| 	@ln -fs $@ ${SHLIB_LINK} | ||||
| 	${CC} ${LDFLAGS} -shared -Wl,-x \ | ||||
| 	-o $@ -Wl,-soname,${SONAME} \ | ||||
| 	${SOBJS} ${LDADD} | ||||
|  | ||||
| install: | ||||
| 	${INSTALL} -d ${DESTDIR}${SHLIBDIR} | ||||
| 	${INSTALL} -m ${LIBMODE} ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR} | ||||
| 	ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK} | ||||
| 	${INSTALL} -d ${DESTDIR}${INCDIR} | ||||
| 	for x in ${INCS}; do ${INSTALL} -m ${INCMODE} $$x ${DESTDIR}${INCDIR}; done | ||||
|  | ||||
| clean: | ||||
| 	rm -f ${OBJS} ${SOBJS} ${_LIBS} ${SHLIB_LINK} | ||||
							
								
								
									
										14
									
								
								src/libeinfo/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/libeinfo/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| TOPDIR=			.. | ||||
| include $(TOPDIR)/os.mk | ||||
|  | ||||
| LIB=			einfo | ||||
| SHLIB_MAJOR=	1 | ||||
| SRCS=			libeinfo.c | ||||
| INCS=			einfo.h | ||||
|  | ||||
| SHLIBDIR=		/${LIBNAME} | ||||
|  | ||||
| include $(TOPDIR)/cc.mk | ||||
| include $(TOPDIR)/lib.mk | ||||
| include $(TOPDIR)/$(TERMCAP).mk | ||||
|  | ||||
							
								
								
									
										14
									
								
								src/librc/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/librc/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| TOPDIR=			.. | ||||
| include $(TOPDIR)/os.mk | ||||
|  | ||||
| LIB=			rc | ||||
| SHLIB_MAJOR=	1 | ||||
| SRCS=			librc.c librc-daemon.c librc-depend.c librc-misc.c librc-strlist.c | ||||
| INCS=			rc.h | ||||
|  | ||||
| CPPFLAGS+=	-DLIB=\"${LIBNAME}\" | ||||
|  | ||||
| SHLIBDIR=		/${LIBNAME} | ||||
|  | ||||
| include $(TOPDIR)/cc.mk | ||||
| include $(TOPDIR)/lib.mk | ||||
							
								
								
									
										3
									
								
								src/ncurses.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/ncurses.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| LIBTERMCAP?=	-lncurses | ||||
| CPPFLAGS+=		-DHAVE_TERMCAP | ||||
| LDADD+=			${LIBTERMCAP} | ||||
							
								
								
									
										24
									
								
								src/os.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/os.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| # Copyright 2008 Roy Marples | ||||
|  | ||||
| # Generic definitions | ||||
|  | ||||
| _OS_SH=		u=`uname -s`; case "$${u}" in *BSD|DragonFly) echo "BSD";; *) echo "$${u}";; esac | ||||
| _OS!=		$(_OS_SH) | ||||
| OS?=		$(_OS)$(shell $(_OS_SH)) | ||||
|  | ||||
| _LIBNAME_SH=	l=`readlink /lib`; case "$$l" in /lib64|lib64) echo "lib64";; *) echo "lib";; esac | ||||
| _LIBNAME!=		$(_LIBNAME_SH) | ||||
| LIBNAME?=		$(_LIBNAME)$(shell $(_LIBNAME_SH)) | ||||
| RC_LIB=			/$(LIB)/rc | ||||
|  | ||||
| _DEF_SH=	case `uname -s` in Linux) echo "-D_XOPEN_SOURCE=600 -D_BSD_SOURCE";; *) echo;; esac | ||||
| _DEF!=		$(_DEF_SH) | ||||
| CPPFLAGS+=	$(_DEF)$(shell $(_DEF_SH)) | ||||
|  | ||||
| _LIBDL_SH=	case `uname -s` in Linux) echo "-Wl,-Bdynamic -ldl";; *) echo;; esac | ||||
| _LIBDL!=	$(_LIBDL_SH) | ||||
| LIBDL?=		$(_LIBDL)$(shell $(_LIBDL_SH)) | ||||
|  | ||||
| _LIBKVM_SH=	case `uname -s` in *BSD) echo "-lkvm";; *) echo;; esac | ||||
| _LIBKVM!=	$(_LIBKVM_SH) | ||||
| LIBKVM?=	$(_LIBKVM)$(shell $(_LIBKVM_SH)) | ||||
							
								
								
									
										6
									
								
								src/pam.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/pam.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| LIBPAM?=		-lpam | ||||
| CPPFLAGS+=		-DHAVE_PAM | ||||
| LDADD+=			${LIBPAM} | ||||
|  | ||||
| PAMDIR?=		/etc/pam.d | ||||
| PAMMODE?=		0644 | ||||
							
								
								
									
										18
									
								
								src/prog.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/prog.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| # rules to build a library | ||||
| # based on FreeBSD's bsd.prog.mk | ||||
|  | ||||
| # Copyright 2008 Roy Marples | ||||
|  | ||||
| BINDIR?=		/sbin | ||||
|  | ||||
| OBJS+=			${SRCS:.c=.o} | ||||
|  | ||||
| INSTALL?=		install | ||||
|  | ||||
| all: ${PROG} | ||||
|  | ||||
| ${PROG}: ${SCRIPTS} ${OBJS} | ||||
| 	${CC} ${CFLAGS} ${LDFLAGS} ${PROGLDFLAGS} ${CPPFLAGS} -o $@ ${OBJS} ${LDADD} | ||||
|  | ||||
| clean: | ||||
| 	rm -f ${OBJS} ${PROG} ${CLEANFILES} | ||||
							
								
								
									
										3
									
								
								src/termcap.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/termcap.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| LIBTERMCAP?=	-ltermcap | ||||
| CPPFLAGS+=		-DHAVE_TERMCAP | ||||
| LDADD+=			${LIBTERMCAP} | ||||
							
								
								
									
										25
									
								
								subdir.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								subdir.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| # Recursive rules | ||||
| # Adapted from FreeBSDs bsd.subdir.mk | ||||
| _+_ ?= + | ||||
| ECHODIR ?= true | ||||
| _SUBDIR = @${_+_}for x in ${SUBDIR}; do \ | ||||
| 	if test -d $$x; then \ | ||||
| 		${ECHODIR} "===> ${DIRPRFX}$$x ($@)"; \ | ||||
| 		cd $$x; \ | ||||
| 		${MAKE} $@ DIRPRFX=${DIRPRFX}$$x/ || exit $$?; \ | ||||
| 		cd ..; \ | ||||
| 	fi; \ | ||||
| 	if test -d $$x.${OS}; then \ | ||||
| 		${ECHODIR} "===> ${DIRPRFX}$$x.${OS} ($@)"; \ | ||||
| 		cd $$x.${OS}; \ | ||||
| 		${MAKE} $@ DIRPRFX=${DIRPRFX}$$x/ || exit $$?; \ | ||||
| 		cd ..; \ | ||||
| 	fi; \ | ||||
| done | ||||
|  | ||||
| all: | ||||
| 	$(_SUBDIR) | ||||
| clean: | ||||
| 	$(_SUBDIR) | ||||
| install: | ||||
| 	$(_SUBDIR) | ||||
		Reference in New Issue
	
	Block a user