Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1if [ -e .attrs.sh ]; then source .attrs.sh; fi
2source $stdenv/setup
3
4providedPreConfigure="$preConfigure";
5
6preConfigure() {
7 eval "$providedPreConfigure"
8
9 . $GNUSTEP_MAKEFILES/GNUstep.sh
10}
11
12wrapGSMake() {
13 local program="$1"
14 local config="$2"
15 local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
16
17 mv "$program" "$wrapped"
18
19 cat > "$program"<<EOF
20#! $SHELL -e
21
22export GNUSTEP_CONFIG_FILE="$config"
23
24exec "$wrapped" "\$@"
25EOF
26 chmod +x "$program"
27}
28
29postInstall() {
30 local conf="$out/share/.GNUstep.conf"
31
32 mkdir -p "$out/share"
33 touch $conf
34
35 # add the current package to the paths
36 local tmp="$out/lib/GNUstep/Applications"
37 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_APPS" in *"${tmp}"*) false;; *) true;; esac; then
38 addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
39 fi
40 tmp="$out/lib/GNUstep/Applications"
41 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" in *"${tmp}"*) false;; *) true;; esac; then
42 addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
43 fi
44 tmp="$out/lib/GNUstep/WebApplications"
45 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_WEB_APPS" in *"${tmp}"*) false;; *) true;; esac; then
46 addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
47 fi
48 tmp="$out/bin"
49 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
50 addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
51 fi
52 tmp="$out/sbin"
53 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
54 addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
55 fi
56 tmp="$out/lib/GNUstep"
57 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARY" in *"${tmp}"*) false;; *) true;; esac; then
58 addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
59 fi
60 tmp="$out/include"
61 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_HEADERS" in *"${tmp}"*) false;; *) true;; esac; then
62 if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
63 export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
64 else
65 export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
66 fi
67 fi
68 tmp="$out/lib"
69 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARIES" in *"${tmp}"*) false;; *) true;; esac; then
70 addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
71 fi
72 tmp="$out/share/GNUstep/Documentation"
73 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC" in *"${tmp}"*) false;; *) true;; esac; then
74 addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
75 fi
76 tmp="$out/share/man"
77 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_MAN" in *"${tmp}"*) false;; *) true;; esac; then
78 addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
79 fi
80 tmp="$out/share/info"
81 if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_INFO" in *"${tmp}"*) false;; *) true;; esac; then
82 addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
83 fi
84
85 # write the config file
86 echo GNUSTEP_MAKEFILES=$GNUSTEP_MAKEFILES >> $conf
87 if [ -n "$NIX_GNUSTEP_SYSTEM_APPS" ]; then
88 echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS"
89 fi
90 if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" ]; then
91 echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf
92 fi
93 if [ -n "$NIX_GNUSTEP_SYSTEM_WEB_APPS" ]; then
94 echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf
95 fi
96 if [ -n "$NIX_GNUSTEP_SYSTEM_TOOLS" ]; then
97 echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf
98 fi
99 if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" ]; then
100 echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf
101 fi
102 if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARY" ]; then
103 echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf
104 fi
105 if [ -n "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
106 echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf
107 fi
108 if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARIES" ]; then
109 echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf
110 fi
111 if [ -n "$NIX_GNUSTEP_SYSTEM_DOC" ]; then
112 echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf
113 fi
114 if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_MAN" ]; then
115 echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf
116 fi
117 if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_INFO" ]; then
118 echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf
119 fi
120
121 for i in $out/bin/*; do
122 echo "wrapping $(basename $i)"
123 wrapGSMake "$i" "$out/share/.GNUstep.conf"
124 done
125}
126
127genericBuild