Browse Source

add support for netbsd. just minor fixes needed.

wbx 14 years ago
parent
commit
a619c16fa7
8 changed files with 66 additions and 26 deletions
  1. 5 4
      config/Makefile
  2. 35 0
      makefile
  3. 2 2
      mk/package.mk
  4. 5 5
      mk/pkg-bottom.mk
  5. 0 1
      package/Makefile
  6. 11 1
      scripts/cpio
  7. 1 0
      scripts/rstrip.sh
  8. 7 13
      scripts/scan-tools.sh

+ 5 - 4
config/Makefile

@@ -31,6 +31,7 @@ ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h))
 HOSTNCURSES+=	-DCURSES_LOC="<ncurses.h>"
 else
 HOSTNCURSES+=	-DCURSES_LOC="<curses.h>"
+LIBS=		-lcurses
 endif
 endif
 endif
@@ -47,16 +48,16 @@ MCONF_OBJS=$(patsubst %.c,%.o, $(MCONF_SRC))
 SHARED_OBJS=$(patsubst %.c,%.o, $(SHARED_SRC))
 
 conf: $(CONF_OBJS) $(SHARED_OBJS)
-	$(HOSTCC) -DKBUILD_NO_NLS $(NATIVE_LDFLAGS) $^ -o $@
+	$(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $^ -o $@
 
 mconf: $(MCONF_OBJS) $(SHARED_OBJS)
-	$(HOSTCC) -DKBUILD_NO_NLS $(NATIVE_LDFLAGS) $^ -o $@ $(LIBS)
+	$(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $^ -o $@ $(LIBS)
 
 $(CONF_OBJS): %.o : %.c $(SHARED_DEPS)
-	$(HOSTCC) -DKBUILD_NO_NLS $(HOSTCFLAGS) -I. -c $< -o $@
+	$(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@
 
 $(MCONF_OBJS): %.o : %.c $(SHARED_DEPS)
-	$(HOSTCC) -DKBUILD_NO_NLS $(HOSTCFLAGS) $(HOSTNCURSES) -I. -c $< -o $@
+	$(HOSTCC) $(HOSTCFLAGS) $(HOSTNCURSES) -I. -c $< -o $@
 
 glob.o: glob.c $(SHARED_DEPS)
 	$(HOSTCC) $(HOSTCFLAGS) -I. -c glob.c -o $@

+ 35 - 0
makefile

@@ -0,0 +1,35 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+ADKVERSION=	0.1.0
+TOPDIR=		${.CURDIR}
+PWD=		${.CURDIR}
+
+.include "${.CURDIR}/Makefile.inc"
+
+GMAKE_ENV+=	ADKVERSION=${ADKVERSION:Q}
+
+.if defined(package) && !empty(package)
+subdir:=	package/${package}
+.  if !make(clean)
+_subdir_dep:=	${TOPDIR}/.ADK_HAVE_DOT_CONFIG
+.  endif
+.endif
+
+.if defined(subdir) && !empty(subdir)
+_subdir:=	${.TARGETS}
+${.TARGETS}: _subdir
+
+_subdir: ${_subdir_dep}
+	@if test x"$$(umask 2>/dev/null | sed 's/00*22/OK/')" != x"OK"; then \
+		echo >&2 Error: you must build with “umask 022”, sorry.; \
+		exit 1; \
+	fi
+	cd ${.CURDIR}/${subdir} && TOPDIR=${.CURDIR} DEVELOPER=1 \
+	    ${GMAKE} VERBOSE=1 ${.MFLAGS} ${_subdir}
+
+.  include "${.CURDIR}/prereq.mk"
+.  include "${.CURDIR}/mk/split-cfg.mk"
+.else
+.  include "${.CURDIR}/Makefile"
+.endif

+ 2 - 2
mk/package.mk

@@ -220,7 +220,7 @@ ifeq (,$(filter noremove,$(7)))
 	fi
 endif
 	@rm -f '$${STAGING_PARENT}/pkg/$(1)'
-	@cd $${IDIR_$(1)}; \
+	@-cd $${IDIR_$(1)}; \
 	    x=$$$$(find tmp var -mindepth 1 2>/dev/null); if [[ -n $$$$x ]]; then \
 		echo 'WARNING: $${IPKG_$(1)} installs files into a' \
 		    'ramdisk location:' >&2; \
@@ -233,7 +233,7 @@ endif
 	    find usr ! -type d 2>/dev/null | \
 	    grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' | \
 	    tee '$${STAGING_PARENT}/pkg/$(1)' | \
-	    cpio -apdlmu '$${STAGING_DIR}'
+	    cpio -padlmu '$${STAGING_DIR}'
 	@cd '$${STAGING_DIR}'; grep 'usr/lib/.*\.la$$$$' \
 	    '$${STAGING_PARENT}/pkg/$(1)' | while read fn; do \
 		chmod u+w $$$$fn; \

+ 5 - 5
mk/pkg-bottom.mk

@@ -136,6 +136,9 @@ ifneq ($(filter manual,${INSTALL_STYLE}),)
 else ifeq ($(strip ${INSTALL_STYLE}),)
 	cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
 	    DESTDIR='${WRKINST}' ${FAKE_FLAGS} ${INSTALL_TARGET} $(MAKE_TRACE)
+ifeq (,$(filter libonly,${PKG_OPTS}))
+	env ${MAKE_ENV} ${MAKE} post-install $(MAKE_TRACE)
+endif
 else
 	@echo "Invalid INSTALL_STYLE '${INSTALL_STYLE}'" >&2
 	@exit 1
@@ -144,9 +147,6 @@ endif
 		[[ -e $$a ]] || continue; \
 		$(SED) "s,^prefix=.*,prefix=${STAGING_DIR}/usr," $$a; \
 	done
-ifeq (,$(filter libonly,${PKG_OPTS}))
-	@env ${MAKE_ENV} ${MAKE} post-install $(MAKE_TRACE)
-endif
 ifeq (,$(filter noremove,${PKG_OPTS}))
 	@if test -s '${STAGING_PARENT}/pkg/${PKG_NAME}'; then \
 		cd '${STAGING_DIR}'; \
@@ -156,7 +156,7 @@ ifeq (,$(filter noremove,${PKG_OPTS}))
 	fi
 endif
 	@rm -f '${STAGING_PARENT}/pkg/${PKG_NAME}'
-	@cd ${WRKINST}; \
+	@-cd ${WRKINST}; \
 	    if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "eglibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libthread-db" ];then \
 	    find lib \( -name lib\*.so\* -o -name lib\*.a \) \
 	    	-exec echo 'WARNING: ${PKG_NAME} installs files in /lib -' \
@@ -164,7 +164,7 @@ endif
 	    find usr ! -type d 2>/dev/null | \
 	    grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' | \
 	    tee '${STAGING_PARENT}/pkg/${PKG_NAME}' | \
-	    cpio -apdlmu '${STAGING_DIR}'
+	    cpio -padlmuv '${STAGING_DIR}'
 	@cd '${STAGING_DIR}'; grep 'usr/lib/.*\.la$$' \
 	    '${STAGING_PARENT}/pkg/${PKG_NAME}' | while read fn; do \
 		chmod u+w $$fn; \

+ 0 - 1
package/Makefile

@@ -56,7 +56,6 @@ $(TARGET_DIR):
 	$(CMD_TRACE) " done"
 	$(END_TRACE)
 
-#%-install: %-compile
 %-install:
 	@$(START_TRACE) "package/$(patsubst %-install,%,$@)-install: "
 	@$(MAKE) -C $(patsubst %-install,%,$@) install

+ 11 - 1
scripts/cpio

@@ -2,4 +2,14 @@
 # This file is part of the OpenADK project. OpenADK is copyrighted
 # material, please see the LICENCE file in the top-level directory.
 
-/bin/cpio --quiet "$@"
+os=$(uname)
+case $os in
+	NetBSD|MirBSD)
+		quiet=""
+		;;
+	*)
+		quiet="--quiet"
+		;;
+esac
+
+/bin/cpio $quiet "$@"

+ 1 - 0
scripts/rstrip.sh

@@ -58,3 +58,4 @@ find $TARGETS -type f -a -exec file {} \; | \
 	echo "-> $T $F"
 	eval "$T $F"
 done
+exit 0

+ 7 - 13
scripts/scan-tools.sh

@@ -47,12 +47,7 @@ CYG*)
 	echo 'See http://www.cygwin.com/1.7/cygwin-ug-net/using-specialnames.html'
 	;;
 NetBSD)
-	echo "Building OpenADK on $os is currently unsupported."
-	echo "Sorry."
-	echo
-	echo There are unresolved issues relating to ncurses not
-	echo being included in NetBSD®, and these provided by pkgsrc®
-	echo lack important header files.
+	# supported with no extra quirks at the moment
 	;;
 OpenBSD)
 	# supported with no extra quirks at the moment
@@ -191,13 +186,12 @@ if [[ $X != *@(Native compiler works)* ]]; then
 	out=1
 fi
 
-[[ -s /usr/include/ncurses.h ]] || if [[ -s /usr/pkg/include/ncurses.h ]]; then
-	echo 'HOSTCFLAGS+= -isystem /usr/pkg/include' >>$topdir/prereq.mk
-	echo 'HOSTLDFLAGS+=-L/usr/pkg/lib -Wl,-rpath -Wl,/usr/pkg/lib' >>$topdir/prereq.mk
-else
-	echo Install ncurses header files, please.
-	echo
-	out=1
+if [[ ! -s /usr/include/ncurses.h ]]; then
+	if [[ ! -s /usr/include/curses.h ]]; then
+		echo Install ncurses header files, please.
+		echo
+		out=1
+	fi
 fi
 
 if ! which gawk >/dev/null 2>&1; then