trinidad_init_services 1.1.3 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/Gemfile +3 -0
- data/History.txt +6 -0
- data/README.md +95 -0
- data/Rakefile +9 -58
- data/bin/trinidad_init_service +3 -4
- data/init.d/trinidad.erb +33 -12
- data/jsvc-unix-src/CHANGES.txt +62 -0
- data/jsvc-unix-src/INSTALL.txt +81 -0
- data/jsvc-unix-src/Makedefs.in +32 -0
- data/jsvc-unix-src/Makefile.in +42 -0
- data/jsvc-unix-src/configure +4417 -0
- data/jsvc-unix-src/configure.in +141 -0
- data/jsvc-unix-src/man/README +20 -0
- data/jsvc-unix-src/man/fetch.sh +36 -0
- data/jsvc-unix-src/man/jsvc.1.xml +214 -0
- data/jsvc-unix-src/native/.indent.pro +7 -0
- data/jsvc-unix-src/native/Makefile.in +46 -0
- data/jsvc-unix-src/native/arguments.c +476 -0
- data/jsvc-unix-src/native/arguments.h +94 -0
- data/jsvc-unix-src/native/debug.c +87 -0
- data/jsvc-unix-src/native/debug.h +65 -0
- data/jsvc-unix-src/native/dso-dlfcn.c +62 -0
- data/jsvc-unix-src/native/dso-dyld.c +153 -0
- data/jsvc-unix-src/native/dso.h +38 -0
- data/jsvc-unix-src/native/help.c +106 -0
- data/jsvc-unix-src/native/help.h +24 -0
- data/jsvc-unix-src/native/home.c +265 -0
- data/jsvc-unix-src/native/home.h +47 -0
- data/jsvc-unix-src/native/java.c +608 -0
- data/jsvc-unix-src/native/java.h +35 -0
- data/jsvc-unix-src/native/jsvc-unix.c +1267 -0
- data/jsvc-unix-src/native/jsvc.h +55 -0
- data/jsvc-unix-src/native/location.c +151 -0
- data/jsvc-unix-src/native/location.h +29 -0
- data/jsvc-unix-src/native/locks.c +52 -0
- data/jsvc-unix-src/native/locks.h +40 -0
- data/jsvc-unix-src/native/replace.c +121 -0
- data/jsvc-unix-src/native/replace.h +39 -0
- data/jsvc-unix-src/native/signals.c +105 -0
- data/jsvc-unix-src/native/signals.h +34 -0
- data/jsvc-unix-src/native/version.h +63 -0
- data/jsvc-unix-src/support/apfunctions.m4 +110 -0
- data/jsvc-unix-src/support/apjava.m4 +94 -0
- data/jsvc-unix-src/support/apsupport.m4 +155 -0
- data/jsvc-unix-src/support/buildconf.sh +33 -0
- data/jsvc-unix-src/support/config.guess +1371 -0
- data/jsvc-unix-src/support/config.sub +1760 -0
- data/jsvc-unix-src/support/install.sh +128 -0
- data/jsvc-unix-src/support/mkdist.sh +104 -0
- data/lib/trinidad/daemon.rb +31 -0
- data/lib/trinidad_init_services.rb +2 -30
- data/lib/trinidad_init_services/configuration.rb +91 -14
- data/lib/trinidad_init_services/version.rb +5 -0
- data/spec/spec_helper.rb +5 -6
- data/spec/trinidad_daemon_spec.rb +0 -1
- data/spec/trinidad_init_services/configuration_spec.rb +34 -1
- data/trinidad_init_services.gemspec +14 -51
- metadata +146 -87
- data/README +0 -63
- data/trinidad-libs/jsvc_linux +0 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 1.1.4 (2012-03-01)
|
2
|
+
|
3
|
+
* JSVC sources packaged along the gem and compiled on demand (@see #6)
|
4
|
+
* Improve JRuby's native path detection in generated init.d script
|
5
|
+
* Make gem usable with bundler :git => paths
|
6
|
+
|
1
7
|
== 1.1.3 (2012-02-20)
|
2
8
|
|
3
9
|
* Do not ask for a path with $RUN_USER.
|
data/README.md
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
# Trinidad Init Services
|
2
|
+
|
3
|
+
Trinidad's init services based on Apache [commons daemon](http://commons.apache.org/daemon/)
|
4
|
+
and [jruby-jsvc](https://github.com/nicobrevin/jruby-jsvc). Works on Unix and Windows systems.
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
$ jruby -S gem install trinidad_init_services
|
9
|
+
|
10
|
+
When the gem is installed the user must launch the installation process:
|
11
|
+
|
12
|
+
$ jruby -S trinidad_init_service
|
13
|
+
|
14
|
+
This installer guides you through the configuration process and generates a
|
15
|
+
init.d script if you are on a unix system or creates the service if you are
|
16
|
+
on a windows box.
|
17
|
+
|
18
|
+
You can optionally provide a configuration file to the trinidad_init_service
|
19
|
+
command. An example configuration file might look like this:
|
20
|
+
|
21
|
+
app_path: "/home/myuser/app"
|
22
|
+
trinidad_options: "-e production"
|
23
|
+
jruby_home: "/opt/jruby"
|
24
|
+
ruby_compat_version: RUBY1_8
|
25
|
+
trinidad_name: Trinidad
|
26
|
+
jsvc_path: "/usr/bin/jsvc"
|
27
|
+
java_home: "/opt/java"
|
28
|
+
output_path: "/etc/init.d"
|
29
|
+
pid_file: "/tmp/trinidad.pid"
|
30
|
+
log_file: "/tmp/trinidad.log"
|
31
|
+
|
32
|
+
You can then run the installer like so:
|
33
|
+
|
34
|
+
$ jruby -S trinidad_init_service trinidad_init_config.yml
|
35
|
+
|
36
|
+
If any of the required options are not provided in the configuration file, then
|
37
|
+
the installer will prompt you for them.
|
38
|
+
|
39
|
+
|
40
|
+
### Unix
|
41
|
+
|
42
|
+
#### Requirements
|
43
|
+
|
44
|
+
To run Trinidad as a daemon [jsvc](http://commons.apache.org/daemon/jsvc.html) is
|
45
|
+
used. Some distributions provide binary packages of JSVC but not all, for these
|
46
|
+
we do bundle JSVC's sources and try to compile the binary during configuration for
|
47
|
+
you. However please note that to build JSVC on Unix you will need :
|
48
|
+
|
49
|
+
* an ANSI-C compliant compiler (GCC is good) and GNU Make
|
50
|
+
* Java SDK installed (a JRE installation is not enough)
|
51
|
+
|
52
|
+
#### Execution
|
53
|
+
|
54
|
+
When the installation process finishes you can use the script generated to launch
|
55
|
+
the server as a daemon with the options start|stop|restart, i.e:
|
56
|
+
|
57
|
+
$ /etc/init.d/trinidad restart
|
58
|
+
|
59
|
+
#### Running as a Non-Root User
|
60
|
+
|
61
|
+
By default, the Trinidad server process will run as the same user that ran the
|
62
|
+
`/etc/init.d/trinidad start` command. But the service can be configured to run
|
63
|
+
as a different user. The preferred method for doing this is the `run_user:`
|
64
|
+
attribute in the configuration YAML (or it's corresponding value at the prompt).
|
65
|
+
For example:
|
66
|
+
|
67
|
+
app_path: "/home/myuser/app"
|
68
|
+
trinidad_options: "-e production"
|
69
|
+
jruby_home: "/opt/jruby"
|
70
|
+
run_user: myuser
|
71
|
+
...
|
72
|
+
|
73
|
+
This causes the the server to run with non-root privileges (it essentially executes
|
74
|
+
as `sudo -u run_user jsvc ...`).
|
75
|
+
|
76
|
+
On some platforms, however, it may be required that you use the JSVC `-user` argument.
|
77
|
+
This can be configured with the `JSVC_ARGS_EXTRA` environment variable, like this:
|
78
|
+
|
79
|
+
JSVC_ARGS_EXTRA="-user myuser" /etc/init.d/trinidad start
|
80
|
+
|
81
|
+
It not recommended that you mix the `-user` flag with the `run_user` option !
|
82
|
+
|
83
|
+
|
84
|
+
### Windows
|
85
|
+
|
86
|
+
#### Execution
|
87
|
+
|
88
|
+
Open the **Services** panel under **Administrative Tools** and look for a service
|
89
|
+
called **Trinidad**.
|
90
|
+
|
91
|
+
|
92
|
+
## Copyright
|
93
|
+
|
94
|
+
Copyright (c) 2011-2012 David Calavera<calavera@apache.org>.
|
95
|
+
See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -12,17 +12,11 @@ def name
|
|
12
12
|
@name ||= Dir['*.gemspec'].first.split('.').first
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
|
17
|
-
line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
|
18
|
-
end
|
19
|
-
|
20
|
-
def date
|
21
|
-
Date.today.to_s
|
22
|
-
end
|
15
|
+
$:.push File.expand_path("../lib", __FILE__)
|
23
16
|
|
24
|
-
def
|
25
|
-
|
17
|
+
def version
|
18
|
+
require 'trinidad_init_services/version'
|
19
|
+
Trinidad::InitServices::VERSION
|
26
20
|
end
|
27
21
|
|
28
22
|
def gemspec_file
|
@@ -33,31 +27,17 @@ def gem_file
|
|
33
27
|
"#{name}-#{version}.gem"
|
34
28
|
end
|
35
29
|
|
36
|
-
def replace_header(head, header_name)
|
37
|
-
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
|
38
|
-
end
|
39
|
-
|
40
30
|
#############################################################################
|
41
31
|
#
|
42
32
|
# Standard tasks
|
43
33
|
#
|
44
34
|
#############################################################################
|
45
35
|
|
46
|
-
task :default => :
|
47
|
-
|
48
|
-
require 'rake/testtask'
|
49
|
-
Rake::TestTask.new(:test) do |test|
|
50
|
-
test.libs << 'lib' << 'test'
|
51
|
-
test.pattern = 'test/**/test_*.rb'
|
52
|
-
test.verbose = true
|
53
|
-
end
|
36
|
+
task :default => :spec
|
54
37
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
sh "rm -fr coverage"
|
59
|
-
sh "rcov test/test_*.rb"
|
60
|
-
sh "open coverage/index.html"
|
38
|
+
require 'rspec/core/rake_task'
|
39
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
40
|
+
spec.rspec_opts = ['--color', "--format documentation"]
|
61
41
|
end
|
62
42
|
|
63
43
|
require 'rake/rdoctask'
|
@@ -101,7 +81,7 @@ task :release => :build do
|
|
101
81
|
end
|
102
82
|
|
103
83
|
desc 'Build gem'
|
104
|
-
task :build => :
|
84
|
+
task :build => :validate do
|
105
85
|
sh "mkdir -p pkg"
|
106
86
|
sh "gem build #{gemspec_file}"
|
107
87
|
sh "mv #{gem_file} pkg"
|
@@ -112,35 +92,6 @@ task :install => :build do
|
|
112
92
|
sh "gem install pkg/#{gem_file}"
|
113
93
|
end
|
114
94
|
|
115
|
-
desc 'Create gemspec'
|
116
|
-
task :gemspec => :validate do
|
117
|
-
# read spec file and split out manifest section
|
118
|
-
spec = File.read(gemspec_file)
|
119
|
-
head, manifest, tail = spec.split(" # = MANIFEST =\n")
|
120
|
-
|
121
|
-
# replace name version and date
|
122
|
-
replace_header(head, :name)
|
123
|
-
replace_header(head, :version)
|
124
|
-
replace_header(head, :date)
|
125
|
-
#comment this out if your rubyforge_project has a different name
|
126
|
-
replace_header(head, :rubyforge_project)
|
127
|
-
|
128
|
-
# determine file list from git ls-files
|
129
|
-
files = `git ls-files`.
|
130
|
-
split("\n").
|
131
|
-
sort.
|
132
|
-
reject { |file| file =~ /^\./ }.
|
133
|
-
reject { |file| file =~ /^(rdoc|pkg)/ }.
|
134
|
-
map { |file| " #{file}" }.
|
135
|
-
join("\n")
|
136
|
-
|
137
|
-
# piece file back together and write
|
138
|
-
manifest = " s.files = %w[\n#{files}\n ]\n"
|
139
|
-
spec = [head, manifest, tail].join(" # = MANIFEST =\n")
|
140
|
-
File.open(gemspec_file, 'w') { |io| io.write(spec) }
|
141
|
-
puts "Updated #{gemspec_file}"
|
142
|
-
end
|
143
|
-
|
144
95
|
task :validate do
|
145
96
|
libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}"]
|
146
97
|
unless libfiles.empty?
|
data/bin/trinidad_init_service
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
#!/usr/bin/env jruby
|
2
2
|
|
3
|
-
require 'trinidad_init_services
|
4
|
-
require 'yaml'
|
3
|
+
require 'trinidad_init_services'
|
5
4
|
|
6
5
|
if ARGV.size > 0
|
7
|
-
|
8
|
-
config = YAML.load(
|
6
|
+
require 'yaml'
|
7
|
+
config = YAML.load File.read(ARGV[0])
|
9
8
|
Trinidad::InitServices::Configuration.new.configure(config)
|
10
9
|
else
|
11
10
|
Trinidad::InitServices::Configuration.new.configure
|
data/init.d/trinidad.erb
CHANGED
@@ -10,8 +10,6 @@
|
|
10
10
|
# Things you can set:
|
11
11
|
# PROG_OPTS - Arguments to send to the program. A few defaults are appended to this.
|
12
12
|
|
13
|
-
# Path to the jsvc binary, if you're having issues with the pre-compiled binary
|
14
|
-
# try installing it (e.g. apt-get install jsvc) or compiling it yourself :
|
15
13
|
# https://github.com/trinidad/trinidad_init_services/wiki/Installing-JSVC
|
16
14
|
JSVC=<%= @jsvc %>
|
17
15
|
JAVA_HOME=<%= @java_home %>
|
@@ -43,18 +41,42 @@ if [ -z "$JRUBY_OPTS" ] ; then
|
|
43
41
|
JRUBY_OPTS=""
|
44
42
|
fi
|
45
43
|
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
JRUBY_SHELL=/bin/sh
|
45
|
+
|
46
|
+
JRUBY_NATIVE_PATH=""
|
47
|
+
if [ -d "$JRUBY_HOME/lib/native/" ]; then
|
48
|
+
for d in $JRUBY_HOME/lib/native/*`uname -s`; do
|
49
|
+
if [ -z "$JRUBY_NATIVE_PATH" ]; then
|
50
|
+
JRUBY_NATIVE_PATH="$d"
|
51
|
+
else
|
52
|
+
JRUBY_NATIVE_PATH="$JRUBY_NATIVE_PATH:$d"
|
53
|
+
fi
|
54
|
+
done
|
55
|
+
fi
|
56
|
+
|
57
|
+
if [ -z "$JAVA_MEM" ] ; then
|
58
|
+
JAVA_MEM=500m
|
59
|
+
fi
|
60
|
+
|
61
|
+
if [ -z "$JAVA_STACK" ] ; then
|
62
|
+
JAVA_STACK=2048k
|
63
|
+
fi
|
64
|
+
|
65
|
+
JAVA_OPTS="-Xmx${JAVA_MEM} -Xss${JAVA_STACK} -Xbootclasspath/a:$JRUBY_HOME/lib/jruby.jar"
|
49
66
|
|
50
|
-
|
51
|
-
|
52
|
-
$
|
53
|
-
|
67
|
+
# force file.encoding to UTF-8 :
|
68
|
+
if [[ -z "$JAVA_ENCODING" ]]; then
|
69
|
+
JAVA_OPTS="${JAVA_OPTS} -Dfile.encoding=UTF-8"
|
70
|
+
fi
|
71
|
+
|
72
|
+
JAVA_PROPS="$JAVA_PROPS \
|
73
|
+
-Djruby.memory.max=$JAVA_MEM \
|
74
|
+
-Djruby.stack.max=$JAVA_STACK \
|
75
|
+
-Djruby.shell=$JRUBY_SHELL \
|
76
|
+
-Djffi.boot.library.path=$JRUBY_NATIVE_PATH \
|
54
77
|
<%= @jruby_opts.join(' ') %> \
|
55
78
|
$JRUBY_OPTS"
|
56
|
-
|
57
|
-
JAVA_OPTS="-Xmx500m -Xss1024k -Xbootclasspath/a:$JRUBY_HOME/lib/jruby.jar"
|
79
|
+
|
58
80
|
PROC_NAME=${SCRIPT_NAME:-${APP_NAME:-"trinidad"}}
|
59
81
|
|
60
82
|
JSVC_ARGS="-home $JAVA_HOME \
|
@@ -139,4 +161,3 @@ case "$1" in
|
|
139
161
|
echo "Unrecognised command. Usage trinidad [ start | stop | restart ]"
|
140
162
|
;;
|
141
163
|
esac
|
142
|
-
|
@@ -0,0 +1,62 @@
|
|
1
|
+
APACHE COMMONS DAEMON (UNIX) CHANGELOG:
|
2
|
+
|
3
|
+
Changes with 1.0.10
|
4
|
+
* Fix dynamic libcap loading for some linux ditributions (DAEMON-242)
|
5
|
+
|
6
|
+
Changes with 1.0.9
|
7
|
+
* Dynamically load libcap on linux (DAEMON-234)
|
8
|
+
|
9
|
+
Changes with 1.0.8
|
10
|
+
* Better detection of JDK (DAEMON-220)
|
11
|
+
* Use CPPFLAGS in makefile (DAEMON-223)
|
12
|
+
* Add -umask parameter (DAEMON-221)
|
13
|
+
* Add /etc/alternatives to the location search (DAEMON-224)
|
14
|
+
|
15
|
+
Changes with 1.0.7
|
16
|
+
|
17
|
+
|
18
|
+
Changes with 1.0.6
|
19
|
+
* Fix syslog infinite loop (DAEMON-194)
|
20
|
+
* Fix syslog invalid descriptors (DAEMON-186)
|
21
|
+
|
22
|
+
Changes with 1.0.5
|
23
|
+
|
24
|
+
|
25
|
+
Changes with 1.0.4
|
26
|
+
* Add DaemonWrapper to allow running standard applications
|
27
|
+
as daemons. (DAEMON-180)
|
28
|
+
* Support log rotation using SIGUSR1 (DAEMON-95)
|
29
|
+
* Fix FreeBSD build (DAEMON-171)
|
30
|
+
* Add support for config.nice and strip utility (DAEMON-176)
|
31
|
+
|
32
|
+
Changes with 1.0.3
|
33
|
+
* Implement fail() method (DAEMON-128)
|
34
|
+
* Add missing Java6 parameters (DAEMON-140)
|
35
|
+
|
36
|
+
Changes with 1.0.2
|
37
|
+
* Allow support for OS/X 10.6 (DAEMON-129)
|
38
|
+
* Prunmgr shows wrong default logging level (DAEMON-132)
|
39
|
+
* Allon non ASCII characters in classpath (DAEMON-130)
|
40
|
+
* Log on tab of Prunmgr ignores current settings (DAEMON-126)
|
41
|
+
* Unable to open directory /proc/self/fd (DAEMON-120)
|
42
|
+
* Read Java parameters for Java mode in the same way as JVM mode (DAEMON-119)
|
43
|
+
* Allow running jsvc should as non root (DAEMON-93)
|
44
|
+
* Support all the standard Java 5 launcher options (DAEMON-84)
|
45
|
+
* Support compilation on Cygwin (DAEMON-40)
|
46
|
+
* Add Support for AIX (DAEMON-123)
|
47
|
+
* Fix default log path (DAEMON-116)
|
48
|
+
* Wait for JVM clean exit (DAEMON-97)
|
49
|
+
|
50
|
+
Changes with 1.0.1
|
51
|
+
* Allow enableassertions -ea (PR 304310).
|
52
|
+
* Add -lpthread to LDFLAGS on Linux (PR 30177).
|
53
|
+
* Add support for x86_64 (PR 27523).
|
54
|
+
* Add support for Tru64 (PR 29465).
|
55
|
+
* Remove the pid file when son exits correctly (PR 31614).
|
56
|
+
* Add support for JVM-4.1.x on MAC OS X (part of PR 31613).
|
57
|
+
* Prevent starting jsvc several times with the same pidfile (PR 33580).
|
58
|
+
* Finish fixing 31613, automatic detection of JAVA_HOME and headers locations.
|
59
|
+
* -wait and -stop parameters.
|
60
|
+
* fix 34851.
|
61
|
+
* Don't break when set_caps() failed and the user is unchanged (linux).
|
62
|
+
|
@@ -0,0 +1,81 @@
|
|
1
|
+
To build the service libraries and binary under an UNIX operating
|
2
|
+
system you will need:
|
3
|
+
|
4
|
+
An ANSI-C compliant compiler (GCC is good)
|
5
|
+
A Java Platform 2 compliant SDK
|
6
|
+
GNU AutoConf (when building for SVN).
|
7
|
+
|
8
|
+
When building from SVN sources you need to build the "configure" program with:
|
9
|
+
|
10
|
+
sh support/buildconf.sh
|
11
|
+
(Note it is possible to replace sh by any compatible shell like bash, ksh).
|
12
|
+
|
13
|
+
Once the configure script is generated, run it (remember to specify
|
14
|
+
either the --with-java=<dir> parameter or set the JAVA_HOME environment
|
15
|
+
to point to your JDK installation. For example:
|
16
|
+
|
17
|
+
./configure --with-java=/usr/java
|
18
|
+
|
19
|
+
or
|
20
|
+
|
21
|
+
JAVA_HOME=/usr/java
|
22
|
+
export JAVA_HOME
|
23
|
+
./configure
|
24
|
+
|
25
|
+
Note: On Mac OS X <dir> is /System/Library/Frameworks/JavaVM.framework/Home.
|
26
|
+
|
27
|
+
Depending on your JDK layout, configure might fail to find the JNI
|
28
|
+
machine dependant include file (jni_md.h). If that's the case use the
|
29
|
+
--with-os-type=<subdir> parameter where subdir points to the directory
|
30
|
+
within JDK include directory containing jni_md.h file.
|
31
|
+
|
32
|
+
|
33
|
+
If your operating system is supported, configure will go thru cleanly,
|
34
|
+
otherwise it will report an error (please send us the details of your
|
35
|
+
OS/JDK, or a patch against the sources).
|
36
|
+
|
37
|
+
To build the binaries and libraries simply do:
|
38
|
+
|
39
|
+
make
|
40
|
+
|
41
|
+
This will generate the file: ./jsvc.
|
42
|
+
It should be straightforward from here on. To check the allowed parameters
|
43
|
+
for the jsvc binary simply do
|
44
|
+
|
45
|
+
./native/jsvc -help
|
46
|
+
|
47
|
+
Note: On Linux the module capabilities should be loaded, when using -user root
|
48
|
+
make sure you REALLY understand what capabilities does (for example for
|
49
|
+
files access: the downgraded root may not be able to read some files!).
|
50
|
+
|
51
|
+
Making 64-bit binaries
|
52
|
+
|
53
|
+
To be able to build the 64-binaries for supported platforms enter the
|
54
|
+
specific parameters before calling configure
|
55
|
+
|
56
|
+
export CFLAGS=-m64
|
57
|
+
export LDFLAGS=-m64
|
58
|
+
./configure
|
59
|
+
make
|
60
|
+
|
61
|
+
Making Universal binaries
|
62
|
+
|
63
|
+
Some platforms like Mac OSX allow universal or fat binaries that allow
|
64
|
+
both 32 and 64 binaries inside the same executable. To be able to build
|
65
|
+
the fat binaries enter the specific parameters before calling configure
|
66
|
+
|
67
|
+
export CFLAGS="-arch i386 -arch x86_64"
|
68
|
+
export LDFLAGS="-arch i386 -arch x86_64"
|
69
|
+
./configure
|
70
|
+
make
|
71
|
+
|
72
|
+
Optional Build flags
|
73
|
+
|
74
|
+
Make process allows specifying additional compilation flags at compile time
|
75
|
+
by using EXTRA_CFLAGS and EXTRA_LDFLAGS either as environment variables
|
76
|
+
or defined along the make command line
|
77
|
+
|
78
|
+
make EXTRA_CFLAGS="-march=i586"
|
79
|
+
|
80
|
+
will cause -march=i586 to be added to the configure generated CFLAGS.
|
81
|
+
The same applies to EXTRA_LDFLAGS which will be added at link stage.
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
3
|
+
# contributor license agreements. See the NOTICE file distributed with
|
4
|
+
# this work for additional information regarding copyright ownership.
|
5
|
+
# The ASF licenses this file to You under the Apache License, Version 2.0
|
6
|
+
# (the "License"); you may not use this file except in compliance with
|
7
|
+
# the License. You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
# @author Pier Fumagalli <mailto:pier.fumagalli@eng.sun.com>
|
19
|
+
# @version $Id: Makedefs.in 1194902 2011-10-29 15:19:18Z mturk $
|
20
|
+
|
21
|
+
CC = @CC@
|
22
|
+
CFLAGS = @CFLAGS@
|
23
|
+
CPPFLAGS = @CPPFLAGS@
|
24
|
+
INCLUDES = @INCLUDES@
|
25
|
+
LDFLAGS = @LDFLAGS@
|
26
|
+
LIBS = @LIBS@
|
27
|
+
RANLIB = @RANLIB@
|
28
|
+
LDCMD = @LDCMD@
|
29
|
+
STRIP = @STRIP@
|
30
|
+
|
31
|
+
.c.o:
|
32
|
+
$(CC) $(CFLAGS) $(CPPFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) -c $< -o $@
|