#### TARGET CPU
# Use CPU=<cpu_name> to optimize for a particular CPU, among the following
# list :
-# generic, i586, i686, ultrasparc, custom
+# generic, native, i586, i686, ultrasparc, custom
CPU = generic
#### Architecture, used when not building for native architecture
# Use ARCH=<arch_name> to force build for a specific architecture. Known
# architectures will lead to "-m32" or "-m64" being added to CFLAGS and
# LDFLAGS. This can be required to build 32-bit binaries on 64-bit targets.
-# Currently, only x86_64, i386, i486, i586 and i686 are understood.
+# Currently, only 32, 64, x86_64, i386, i486, i586 and i686 are understood.
ARCH =
#### Toolchain options.
# them. You should not have to change these options. Better use CPU_CFLAGS or
# even CFLAGS instead.
CPU_CFLAGS.generic = -O2
+CPU_CFLAGS.native = -O2 -march=native
CPU_CFLAGS.i586 = -O2 -march=i586
CPU_CFLAGS.i686 = -O2 -march=i686
CPU_CFLAGS.ultrasparc = -O6 -mcpu=v9 -mtune=ultrasparc
CPU_CFLAGS = $(CPU_CFLAGS.$(CPU))
#### ARCH dependant flags, may be overriden by CPU flags
+ARCH_FLAGS.32 = -m32
+ARCH_FLAGS.64 = -m64
ARCH_FLAGS.i386 = -m32 -march=i386
ARCH_FLAGS.i486 = -m32 -march=i486
ARCH_FLAGS.i586 = -m32 -march=i586
# pass CPU=<cpu_name> to make to optimize for a particular CPU
CPU = generic
+#CPU = native
#CPU = i586
#CPU = i686
#CPU = ultrasparc
# CPU dependant optimizations
COPTS.generic = -O2
+COPTS.native = -O2 -march=native
COPTS.i586 = -O2 -march=i586
COPTS.i686 = -O2 -march=i686
COPTS.ultrasparc = -O6 -mcpu=v9 -mtune=ultrasparc
# pass CPU=<cpu_name> to make to optimize for a particular CPU
CPU = generic
+#CPU = native
#CPU = i586
#CPU = i686
#CPU = ultrasparc
# CPU dependant optimizations
COPTS.generic = -O2
+COPTS.native = -O2 -march=native
COPTS.i586 = -O2 -march=i586
COPTS.i686 = -O2 -march=i686
COPTS.ultrasparc = -O6 -mcpu=v9 -mtune=ultrasparc
- i686 for intel PentiumPro, Pentium 2 and above, AMD Athlon
- i586 for intel Pentium, AMD K6, VIA C3.
- ultrasparc : Sun UltraSparc I/II/III/IV processor
+ - native : use the build machine's specific processor optimizations
- generic : any other processor or no specific optimization. (default)
Alternatively, you may just set the CPU_CFLAGS value to the optimal GCC options
You may want to build specific target binaries which do not match your native
compiler's target. This is particularly true on 64-bit systems when you want
to build a 32-bit binary. Use the ARCH variable for this purpose. Right now
-it only knows about a few x86 variants (i386,i486,i586,i686,x86_64) and sets
--m32/-m64 as well as -march=<arch> accordingly.
+it only knows about a few x86 variants (i386,i486,i586,i686,x86_64), two
+generic ones (32,64) and sets -m32/-m64 as well as -march=<arch> accordingly.
If your system supports PCRE (Perl Compatible Regular Expressions), then you
really should build with libpcre which is between 2 and 10 times faster than