]> git.ozlabs.org Git - ppp.git/commitdiff
Add cross-compilation support on Linux
authorPaul Mackerras <paulus@ozlabs.org>
Fri, 1 Jan 2021 08:44:07 +0000 (19:44 +1100)
committerPaul Mackerras <paulus@ozlabs.org>
Fri, 1 Jan 2021 08:55:24 +0000 (19:55 +1100)
This adds three new command-line options to the configure script:

--cross_compile=<prefix> (default "")
--cc=<compiler>          (default cc)
--cflags=<compile flags> (default -g -O2 -pipe)

These get propagated to the Makefiles in the subdirectories.  The
cross-compile prefix is prepended to the CC value, so for example
if you do "./configure --cross_compile=powerpc64le-linux-" then
everything gets compiled and linked using powerpc64le-linux-cc.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
chat/Makefile.linux
configure
pppd/Makefile.linux
pppd/plugins/Makefile.linux
pppd/plugins/pppoatm/Makefile.linux
pppd/plugins/pppoe/Makefile.linux
pppd/plugins/pppol2tp/Makefile.linux
pppd/plugins/radius/Makefile.linux
pppdump/Makefile.linux
pppstats/Makefile.linux

index f082dab78e7b5a33c648004cf292991c9d67a594..407cc128796d1160602c31f1a7c1c1ca2268e969 100644 (file)
@@ -1,4 +1,6 @@
-#      $Id: Makefile.linux,v 1.15 2006/06/04 05:07:46 paulus Exp $
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
 
 DESTDIR = $(INSTROOT)@DESTDIR@
 BINDIR = $(DESTDIR)/sbin
@@ -10,7 +12,6 @@ CDEF3=        -UNO_SLEEP                      # Use the usleep function
 CDEF4= -DFNDELAY=O_NDELAY              # Old name value
 CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
 
-COPTS= -O2 -g -pipe
 CFLAGS=        $(COPTS) $(CDEFS)
 
 INSTALL= install
index ecd1b0d8ebf3a5fc40f80229e51b648d939545cf..f977663fd8db2ec9aee5c1c8f30f1b17cc30840e 100755 (executable)
--- a/configure
+++ b/configure
@@ -5,25 +5,25 @@
 DESTDIR=/usr/local
 SYSCONF=/etc
 
-#  if [ -d /NextApps ]; then
-#    system="NeXTStep"
-#  else
-  system=`uname -s`
-  release=`uname -r`
-  arch=`uname -m`
-#  fi
+# Compile defaults
+CROSS_COMPILE=
+CC=cc
+CFLAGS=
+
+system=`uname -s`
+release=`uname -r`
+arch=`uname -m`
 state="unknown"
 
 case $system in
   Linux)
     makext="linux";
     ksrc="linux";
-    state="known";;
+    state="known";
+    CFLAGS="-O2 -g -pipe";;
   SunOS)
     karch=`/usr/bin/isainfo -k`
     case $release in
-#      [0-3]*) state="ancient";;
-#      4*)     state="known"; ksrc="sunos4"; makext="sunos4";;
       5.[7-9]*|5.[1-9][0-9]*)  state="known"; ksrc="solaris"; makext="sol2";
               case "$karch" in
                amd64)          archvariant='-64x';;
@@ -72,57 +72,6 @@ case $system in
     fi;;
   NetBSD|FreeBSD|ULTRIX|OSF1|NeXTStep|SINIX-?|UNIX_SV|UNIX_System_V)
     state="notincluded";;
-#    NetBSD)
-#      makext="bsd";
-#      case $release in
-#        0.*)  state="ancient";;
-#        1.0*) state="ancient";;
-#        1.1*) state="known"; ksrc="netbsd-1.1";;
-#        1.2*) state="known"; ksrc="netbsd-1.2"; makext="netbsd-1.2";;
-#        1.[3-9]*|[2-9]*)
-#              state="late"; ksrc="netbsd-1.2";;
-#      esac;;
-#    ULTRIX)
-#      makext="ultrix";
-#      case $release in
-#        [0-3]*)       state="ancient";;
-#        4.[01]*)      state="early"; ksrc="ultrix";;
-#        4.[234])      state="known"; ksrc="ultrix";;
-#      esac;;
-#    OSF1)
-#      makext="osf";
-#      case $release in
-#        V1.*)   state="neolithic"; ksrc="osf1";;
-#        V[23].*)      state="neolithic"; ksrc="osf1";;
-#        V4.*) state="known"; ksrc="osf1";;
-#        V[5-9]*) state="late"; ksrc="osf1";;
-#      esac;;
-#    FreeBSD)
-#      makext="bsd";
-#      case $release in
-#        1.*)  state="known"; ksrc="freebsd-old";;
-#        2.[01]*)      state="known"; ksrc="freebsd-2.0";;
-#        2.2.[2-7]*) state="late"; ksrc="freebsd-2.0";;
-#        2.2.8*)   state="known"; ksrc="freebsd-2.2.8";;
-#        3.[0-1]*)     state="known"; ksrc="freebsd-3.0";;
-#      esac;;
-#    NeXTStep)
-#      makext="NeXT";
-#      ksrc="NeXT";
-#      state="known";;
-#    SINIX-?)
-#      case $release in
-#        5.4[01]) state=known; ksrc=svr4; makext=svr4;;
-#        5.4[2-9]) state=late; ksrc=svr4; makext=svr4;;
-#      esac;;
-#    # Intel SVR4 systems come with a bug in the uname program.  Unless
-#    # your provider fixed the bug, or you get a fix for it, uname -S will
-#    # overwrite the system name with the node name!
-#    UNIX_SV|UNIX_System_V|`uname -n`)
-#      case $release in
-#        4.0) state=known; ksrc=svr4; makext=svr4;;
-#        4.2) state=late; ksrc=svr4; makext=svr4;;
-#      esac;;
 esac
 
 if [ -d "$ksrc" ]; then :; else
@@ -131,22 +80,6 @@ if [ -d "$ksrc" ]; then :; else
 fi
 
 case $state in
-  neolithic) 
-    echo "This is a newer release on an outdated OS ($system)."
-    echo " This software may or may not work on this OS."
-    echo " You may want to download an older version of PPP for this OS.";;
-  ancient)
-    echo "This is an old release of a supported OS ($system)."
-    echo "This software cannot be used as-is on this system,"
-    echo "but you may be able to port it.  Good luck!"
-    exit;;
-  early)
-    echo "This is an old release of a supported OS ($system)."
-    echo "This software should install and run on this system,"
-    echo "but it hasn't been tested.";;
-  late)
-    echo "This is a newer release of $system than is supported by"
-    echo "this software.  It may or may not work.";;
   unknown)
     echo "This software has not been ported to $system.  Sorry.";;
   notincluded)
@@ -176,8 +109,11 @@ while [ $# -gt 0 ]; do
            ;;
     esac
     case $arg in
-       --prefix)       DESTDIR=$val ;;
-       --sysconfdir)   SYSCONF=$val ;;
+       --prefix)        DESTDIR=$val ;;
+       --sysconfdir)    SYSCONF=$val ;;
+       --cross_compile) CROSS_COMPILE=$val ;;
+       --cc)            CC=$val ;;
+       --cflags)        CFLAGS=$val ;;
     esac
 done
 
@@ -185,7 +121,9 @@ mkmkf() {
     rm -f $2
     if [ -f $1 ]; then
        echo "  $2 <= $1"
-       sed -e "s,@DESTDIR@,$DESTDIR,g" -e "s,@SYSCONF@,$SYSCONF,g" $1 >$2
+       sed -e "s,@DESTDIR@,$DESTDIR,g" -e "s,@SYSCONF@,$SYSCONF,g" \
+           -e "s,@CROSS_COMPILE@,$CROSS_COMPILE,g" -e "s,@CC@,$CC,g" \
+           -e "s,@CFLAGS@,$CFLAGS,g" $1 >$2
     fi
 }
 
index 958cc29b1e595f484c95ab6dcde98321d4db11bb..22837c50415e69a6e1a576b97298e741080861f2 100644 (file)
@@ -3,6 +3,10 @@
 # Processed by configure to produce pppd/Makefile
 #
 
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
+
 # Default installation locations
 DESTDIR = $(INSTROOT)@DESTDIR@
 BINDIR = $(DESTDIR)/sbin
@@ -30,9 +34,6 @@ ifeq (.depend,$(wildcard .depend))
 include .depend
 endif
 
-# CC = gcc
-#
-COPTS = -O2 -pipe -Wall -g
 LIBS = -lrt
 
 # Uncomment the next line to include support for Microsoft's
@@ -90,7 +91,7 @@ MAXOCTETS=y
 
 INCLUDE_DIRS= -I../include
 
-COMPILE_FLAGS= -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP
+COMPILE_FLAGS= -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -pipe
 
 CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
 
index e2a680e85f955140432ef832a5a22ab9b0ccfce4..6403e3d477e3bf427f5830743dd9cbc88fc6ac94 100644 (file)
@@ -1,5 +1,12 @@
-#CC    = gcc
-COPTS  = -O2 -g
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
+
+DESTDIR = $(INSTROOT)@DESTDIR@
+BINDIR = $(DESTDIR)/sbin
+MANDIR = $(DESTDIR)/share/man/man8
+LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
+
 CFLAGS = $(COPTS) -I.. -I../../include -fPIC
 LDFLAGS_SHARED = -shared
 INSTALL        = install
@@ -7,11 +14,6 @@ INSTALL       = install
 # EAP-TLS
 CFLAGS += -DUSE_EAPTLS=1
 
-DESTDIR = $(INSTROOT)@DESTDIR@
-BINDIR = $(DESTDIR)/sbin
-MANDIR = $(DESTDIR)/share/man/man8
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
-
 SUBDIRS := pppoe pppoatm pppol2tp
 # Uncomment the next line to include the radius authentication plugin
 SUBDIRS += radius
index 59dde0e1643266230057fbbb82eaa5e986d03d05..d3a8086b69ea09656b02a6689caa55f063ae7edd 100644 (file)
@@ -1,16 +1,17 @@
-#CC    = gcc
-COPTS  = -O2 -g
-CFLAGS = $(COPTS) -I../.. -I../../../include -fPIC
-LDFLAGS_SHARED = -shared
-INSTALL        = install
-
 #***********************************************************************
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
 
 DESTDIR = $(INSTROOT)@DESTDIR@
 LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
 
 VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
 
+CFLAGS = $(COPTS) -I../.. -I../../../include -fPIC
+LDFLAGS_SHARED = -shared
+INSTALL        = install
+
 PLUGIN := pppoatm.so
 PLUGIN_OBJS := pppoatm.o 
 
index 473f26938e17dba191ced9cc0d4d78553de08d13..c415ce3191d5ff1703da73c695405b71be6e8341 100644 (file)
@@ -1,4 +1,3 @@
-# Generated automatically from Makefile.in by configure.
 #***********************************************************************
 #
 # Makefile
 # This program may be distributed according to the terms of the GNU
 # General Public License, version 2 or (at your option) any later version.
 #
-# $Id: Makefile.linux,v 1.8 2008/06/09 08:34:23 paulus Exp $
 #***********************************************************************
 
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
+
 DESTDIR = $(INSTROOT)@DESTDIR@
 BINDIR = $(DESTDIR)/sbin
 LIBDIR = $(DESTDIR)/lib/pppd/$(PPPDVERSION)
@@ -23,7 +25,6 @@ PPPDVERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
 INSTALL        = install
 LN_S   = ln -sf
 
-COPTS=-O2 -g
 CFLAGS=$(COPTS) -I../../../include
 all: pppoe.so pppoe-discovery
 
index ffb9c34410c92e3d5a236ee78f9b9eecf5767bf1..1aa1c0b57d4eef9f1000dad67dcbb1a22015b305 100644 (file)
@@ -1,16 +1,17 @@
-#CC    = gcc
-COPTS  = -O2 -g
-CFLAGS = $(COPTS) -I. -I../.. -I../../../include -fPIC
-LDFLAGS_SHARED = -shared
-INSTALL        = install
-
 #***********************************************************************
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
 
 DESTDIR = $(INSTROOT)/@DESTDIR@
 LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
 
 VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
 
+CFLAGS = $(COPTS) -I. -I../.. -I../../../include -fPIC
+LDFLAGS_SHARED = -shared
+INSTALL        = install
+
 PLUGINS := pppol2tp.so openl2tp.so
 
 all: $(PLUGINS)
index 3a15b03347cb5357e1f17f27ccb7d68438beef82..489aef25229ba2e7fc38dda02023d7f24a5516bd 100644 (file)
@@ -3,6 +3,10 @@
 # Copyright 2002 Roaring Penguin Software Inc.
 #
 
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
+
 DESTDIR = $(INSTROOT)@DESTDIR@
 MANDIR = $(DESTDIR)/share/man/man8
 LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
@@ -12,8 +16,7 @@ VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
 INSTALL        = install
 
 PLUGIN=radius.so radattr.so radrealms.so
-CFLAGS ?= -O2
-CFLAGS += -I. -I../.. -I../../../include -fPIC -DRC_LOG_FACILITY=LOG_DAEMON
+CFLAGS = $(COPTS) -I. -I../.. -I../../../include -fPIC -DRC_LOG_FACILITY=LOG_DAEMON
 
 # Uncomment the next line to include support for Microsoft's
 # MS-CHAP authentication protocol.
index 742a4b805665f4238b74172a7d9d7da89d4ef128..a94187fa9e296a590d6a84a588b40d2f903b31d2 100644 (file)
@@ -1,9 +1,12 @@
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
+
 DESTDIR = $(INSTROOT)@DESTDIR@
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
 
-CFLAGS ?= -O
-CFLAGS += -I../include/net
+CFLAGS = $(COPTS) -I../include/net
 OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
 
 INSTALL= install
index 181937089753cf02dc64d50a10906d092b9ca3e9..ddfe0cc841be361c4a7926b317c2f39a78d6523e 100644 (file)
@@ -1,7 +1,10 @@
 #
 # pppstats makefile
-# $Id: Makefile.linux,v 1.9 2006/06/04 05:07:46 paulus Exp $
 #
+CROSS_COMPILE=@CROSS_COMPILE@
+CC=$(CROSS_COMPILE)@CC@
+COPTS=@CFLAGS@
+
 DESTDIR = $(INSTROOT)@DESTDIR@
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
@@ -9,8 +12,6 @@ MANDIR = $(DESTDIR)/share/man/man8
 PPPSTATSRCS = pppstats.c
 PPPSTATOBJS = pppstats.o
 
-#CC = gcc
-COPTS = -O
 COMPILE_FLAGS = -I../include
 LIBS =