diff options
author | miwi <miwi@FreeBSD.org> | 2011-02-13 19:10:59 +0800 |
---|---|---|
committer | miwi <miwi@FreeBSD.org> | 2011-02-13 19:10:59 +0800 |
commit | ba43faa194a9810492dac5fcf53487305d52e0fc (patch) | |
tree | cc5471ba08202afb17a55f3f38e4b2a2c1ba0549 /devel | |
parent | 4e68474ccc4d0971fef5aa4c794da19e71a61ab0 (diff) | |
download | freebsd-ports-gnome-ba43faa194a9810492dac5fcf53487305d52e0fc.tar.gz freebsd-ports-gnome-ba43faa194a9810492dac5fcf53487305d52e0fc.tar.zst freebsd-ports-gnome-ba43faa194a9810492dac5fcf53487305d52e0fc.zip |
Ninja is yet another build system. It takes as input the interdependencies
of files (typically source code and output executables) and orchestrates
building them, quickly.
Ninja joins a sea of other build systems. Its distinguishing goal is to be
fast. It is born from my work on the Chromium browser project, which has
over 30,000 source files and whose other build systems (including one built
from custom non-recursive Makefiles) can take ten seconds to start building
after changing one file. Ninja is under a second.
WWW: https://github.com/martine/ninja
PR: ports/154603
Submitted by: Grzegorz Blach <magik at roorback.net>
Diffstat (limited to 'devel')
-rw-r--r-- | devel/Makefile | 1 | ||||
-rw-r--r-- | devel/ninja/Makefile | 42 | ||||
-rw-r--r-- | devel/ninja/distinfo | 2 | ||||
-rw-r--r-- | devel/ninja/files/patch-build.ninja | 11 | ||||
-rw-r--r-- | devel/ninja/files/patch-src-ninja.cc | 33 | ||||
-rw-r--r-- | devel/ninja/pkg-descr | 11 |
6 files changed, 100 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile index 03be03e39d92..475c440395b4 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -1052,6 +1052,7 @@ SUBDIR += newt SUBDIR += ngpt SUBDIR += nini + SUBDIR += ninja SUBDIR += noweb SUBDIR += nspr SUBDIR += oaf diff --git a/devel/ninja/Makefile b/devel/ninja/Makefile new file mode 100644 index 000000000000..6fccf2c512df --- /dev/null +++ b/devel/ninja/Makefile @@ -0,0 +1,42 @@ +# New ports collection makefile for: ninja +# Date created: 08 February 2011 +# Whom: Grzegorz Blach <magik@roorback.net> +# +# $FreeBSD$ +# + +PORTNAME= ninja +PORTVERSION= 20110208 +CATEGORIES= devel +MASTER_SITES= http://files.roorback.net/src/ + +MAINTAINER= magik@roorback.net +COMMENT= Ninja is a small build system closest in spirit to Make + +LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo + +LICENSE= ASL +CONFLICTS= irc/ninja-[0-9]* + +PLIST_FILES= bin/ninja +PORTDOCS= COPYING HACKING README manual.asciidoc todo + +post-patch: + @${REINPLACE_CMD} \ + -e 's|/bin/bash|/bin/sh|' \ + -e 's|conf_cflags = -O2|conf_cflags = ${CXXFLAGS} -I${LOCALBASE}/include|' \ + -e 's|conf_ldflags = -s|conf_ldflags = -s -L${LOCALBASE}/lib -lexecinfo|' \ + -e 's|g++|g++ -I${LOCALBASE}/include -L${LOCALBASE}/lib -lexecinfo|' \ + ${WRKSRC}/bootstrap.sh + +do-build: + @(cd ${WRKSRC}; ./bootstrap.sh) + +do-install: + @${INSTALL} -m 755 ${WRKSRC}/ninja ${PREFIX}/bin +.if !defined(NOPORTDOCS) + @${MKDIR} ${DOCSDIR} + @(cd ${WRKSRC}; ${INSTALL} -m 644 ${PORTDOCS} ${DOCSDIR}) +.endif + +.include <bsd.port.mk> diff --git a/devel/ninja/distinfo b/devel/ninja/distinfo new file mode 100644 index 000000000000..96fa705c1214 --- /dev/null +++ b/devel/ninja/distinfo @@ -0,0 +1,2 @@ +SHA256 (ninja-20110208.tar.gz) = 0b4ce3a9b9755479b7e34e7da6a7dfbf6e49df0a38e0553bda1e2565cbba8b99 +SIZE (ninja-20110208.tar.gz) = 46644 diff --git a/devel/ninja/files/patch-build.ninja b/devel/ninja/files/patch-build.ninja new file mode 100644 index 000000000000..4a5a0b485544 --- /dev/null +++ b/devel/ninja/files/patch-build.ninja @@ -0,0 +1,11 @@ +--- build.ninja.orig 2011-02-10 19:29:29.000000000 +0100 ++++ build.ninja 2011-02-10 19:29:33.000000000 +0100 +@@ -24,7 +24,7 @@ + description = CC $out + + rule ar +- command = ar crsT $out $in ++ command = ar crs $out $in + description = AR $out + + rule link diff --git a/devel/ninja/files/patch-src-ninja.cc b/devel/ninja/files/patch-src-ninja.cc new file mode 100644 index 000000000000..1e6d680429ea --- /dev/null +++ b/devel/ninja/files/patch-src-ninja.cc @@ -0,0 +1,33 @@ +--- src/ninja.orig 2011-02-10 17:21:11.000000000 +0200 ++++ src/ninja.cc 2011-02-10 17:21:43.000000000 +0200 +@@ -20,6 +20,9 @@ + #include <stdio.h> + #include <string.h> + #include <sys/stat.h> ++#if defined(__APPLE__) || defined(__FreeBSD__) ++#include <sys/sysctl.h> ++#endif + #include <sys/types.h> + + #include "build.h" +@@ -64,6 +67,7 @@ void usage(const BuildConfig& config) { + int GuessParallelism() { + int processors = 0; + ++#if defined(linux) + const char kProcessorPrefix[] = "processor\t"; + char buf[16 << 10]; + FILE* f = fopen("/proc/cpuinfo", "r"); +@@ -74,6 +78,12 @@ int GuessParallelism() { + ++processors; + } + fclose(f); ++#elif defined(__APPLE__) || defined(__FreeBSD__) ++ size_t procSize = sizeof(processors); ++ int name[] = {CTL_HW, HW_NCPU}; ++ if (sysctl(name, sizeof(name) / sizeof(int), &processors, &procSize, NULL, 0)) ++ return 2; ++#endif + + switch (processors) { + case 0: diff --git a/devel/ninja/pkg-descr b/devel/ninja/pkg-descr new file mode 100644 index 000000000000..63724b70b8ae --- /dev/null +++ b/devel/ninja/pkg-descr @@ -0,0 +1,11 @@ +Ninja is yet another build system. It takes as input the interdependencies +of files (typically source code and output executables) and orchestrates +building them, quickly. + +Ninja joins a sea of other build systems. Its distinguishing goal is to be +fast. It is born from my work on the Chromium browser project, which has +over 30,000 source files and whose other build systems (including one built +from custom non-recursive Makefiles) can take ten seconds to start building +after changing one file. Ninja is under a second. + +WWW: https://github.com/martine/ninja |