From d9627845805be0a00f05d2329642525655673cfd Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 18 Apr 2007 09:24:31 +0000 Subject: [PATCH] Fixed the legacy build system git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/split-3rd-party@1202 74dad513-b988-da41-8d7b-12977e46ad98 --- Makefile | 4 +- aconfigure | 34 +++-- aconfigure.ac | 16 ++- build/os-linux.mak | 2 +- configure-legacy | 43 +++++-- pjmedia/build/Makefile | 7 +- pjmedia/build/os-auto.mak.in | 5 + pjmedia/build/os-darwinos.mak | 98 ++++++++++++-- pjmedia/build/os-linux.mak | 91 +++++++++++-- pjmedia/build/os-win32.mak | 99 ++++++++++++--- pjmedia/src/pjmedia/errno.c | 4 +- pjmedia/src/pjmedia/sound_port.c | 8 -- pjsip/build/Makefile | 2 +- third_party/Makefile | 49 ------- third_party/Makefile.in | 49 ------- third_party/build/Makefile | 12 ++ third_party/build/os-auto.mak.in | 17 +++ third_party/build/os-darwinos.mak | 7 + third_party/build/os-linux.mak | 7 + third_party/build/os-win32.mak | 7 + third_party/build/portaudio/Makefile | 69 ++++++++++ third_party/build/portaudio/Makefile.in | 141 --------------------- third_party/build/portaudio/os-auto.mak.in | 73 +++++++++++ third_party/build/portaudio/os-linux.mak | 34 +++++ user.mak.sample | 2 + 25 files changed, 566 insertions(+), 314 deletions(-) delete mode 100644 third_party/Makefile delete mode 100644 third_party/Makefile.in create mode 100644 third_party/build/Makefile create mode 100644 third_party/build/os-auto.mak.in create mode 100644 third_party/build/os-darwinos.mak create mode 100644 third_party/build/os-linux.mak create mode 100644 third_party/build/os-win32.mak create mode 100644 third_party/build/portaudio/Makefile delete mode 100644 third_party/build/portaudio/Makefile.in create mode 100644 third_party/build/portaudio/os-auto.mak.in create mode 100644 third_party/build/portaudio/os-linux.mak create mode 100644 user.mak.sample diff --git a/Makefile b/Makefile index d6862e947..f09c54a74 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ include build.mak include build/host-$(HOST_NAME).mak -DIRS = pjlib pjlib-util pjnath pjmedia pjsip pjsip-apps +DIRS = pjlib pjlib-util pjnath third_party pjmedia pjsip pjsip-apps ifdef MINSIZE MAKE_FLAGS := MINSIZE=1 @@ -9,13 +9,11 @@ endif all clean dep depend distclean doc print realclean: for dir in $(DIRS); do \ - if [ -d $$dir ]; then \ if $(MAKE) $(MAKE_FLAGS) -C $$dir/build $@; then \ true; \ else \ exit 1; \ fi; \ - fi; \ done LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \ diff --git a/aconfigure b/aconfigure index 66fbcf924..9d8286c84 100755 --- a/aconfigure +++ b/aconfigure @@ -308,7 +308,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX ac_pjdir CPP EGREP ac_os_objs ac_pjmedia_snd ac_pa_cflags ac_pa_use_alsa ac_no_small_filter ac_no_large_filter ac_no_g711_plc ac_no_speex_aec ac_no_g711_codec ac_no_l16_codec ac_no_gsm_codec ac_no_speex_codec ac_no_ilbc_codec ac_no_ssl openssl_h_present libssl_present libcrypto_present ac_cross_compile ac_linux_poll ac_host ac_main_obj LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX ac_pjdir CPP EGREP ac_os_objs ac_pjmedia_snd ac_pa_cflags ac_pa_use_alsa ac_no_small_filter ac_no_large_filter ac_no_speex_aec ac_no_g711_codec ac_no_l16_codec ac_no_gsm_codec ac_no_speex_codec ac_no_ilbc_codec ac_no_ssl openssl_h_present libssl_present libcrypto_present ac_cross_compile ac_linux_poll ac_host ac_main_obj LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1439,7 +1439,7 @@ test -n "$target_alias" && program_prefix=${target_alias}- ac_config_headers="$ac_config_headers pjlib/include/pj/compat/os_auto.h pjlib/include/pj/compat/m_auto.h pjmedia/include/pjmedia/config_auto.h pjmedia/include/pjmedia-codec/config_auto.h pjsip/include/pjsip/sip_autoconf.h" - ac_config_files="$ac_config_files build.mak build/os-auto.mak pjlib/build/os-auto.mak pjlib-util/build/os-auto.mak pjmedia/build/os-auto.mak pjsip/build/os-auto.mak third_party/Makefile third_party/build/portaudio/Makefile" + ac_config_files="$ac_config_files build.mak build/os-auto.mak pjlib/build/os-auto.mak pjlib-util/build/os-auto.mak pjmedia/build/os-auto.mak pjsip/build/os-auto.mak third_party/build/portaudio/os-auto.mak third_party/build/os-auto.mak" @@ -9013,9 +9013,6 @@ else echo "${ECHO_T}Checking if large filter is disabled... no" >&6 fi; -ac_no_g711_plc=yes - - # Check whether --enable-speex-aec or --disable-speex-aec was given. if test "${enable_speex_aec+set}" = set; then @@ -10081,8 +10078,8 @@ do "pjlib-util/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjlib-util/build/os-auto.mak" ;; "pjmedia/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjmedia/build/os-auto.mak" ;; "pjsip/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjsip/build/os-auto.mak" ;; - "third_party/Makefile" ) CONFIG_FILES="$CONFIG_FILES third_party/Makefile" ;; - "third_party/build/portaudio/Makefile" ) CONFIG_FILES="$CONFIG_FILES third_party/build/portaudio/Makefile" ;; + "third_party/build/portaudio/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES third_party/build/portaudio/os-auto.mak" ;; + "third_party/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES third_party/build/os-auto.mak" ;; "pjlib/include/pj/compat/os_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjlib/include/pj/compat/os_auto.h" ;; "pjlib/include/pj/compat/m_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjlib/include/pj/compat/m_auto.h" ;; "pjmedia/include/pjmedia/config_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjmedia/include/pjmedia/config_auto.h" ;; @@ -10203,7 +10200,6 @@ s,@ac_pa_cflags@,$ac_pa_cflags,;t t s,@ac_pa_use_alsa@,$ac_pa_use_alsa,;t t s,@ac_no_small_filter@,$ac_no_small_filter,;t t s,@ac_no_large_filter@,$ac_no_large_filter,;t t -s,@ac_no_g711_plc@,$ac_no_g711_plc,;t t s,@ac_no_speex_aec@,$ac_no_speex_aec,;t t s,@ac_no_g711_codec@,$ac_no_g711_codec,;t t s,@ac_no_l16_codec@,$ac_no_l16_codec,;t t @@ -10707,3 +10703,25 @@ if test "$no_create" != yes; then fi + +echo "$as_me:$LINENO: result: + +The configuration for current target has been written to 'build.mak', and 'os-auto.mak' in various build directories. + +Customizations can be put in: + - 'user.mak' + - 'pjlib/include/pj/config_site.h' + +The next step now is to run 'make dep' and 'make'. +" >&5 +echo "${ECHO_T} + +The configuration for current target has been written to 'build.mak', and 'os-auto.mak' in various build directories. + +Customizations can be put in: + - 'user.mak' + - 'pjlib/include/pj/config_site.h' + +The next step now is to run 'make dep' and 'make'. +" >&6 + diff --git a/aconfigure.ac b/aconfigure.ac index 44a25ade4..c22c8268a 100644 --- a/aconfigure.ac +++ b/aconfigure.ac @@ -17,8 +17,8 @@ AC_CONFIG_FILES([build.mak pjlib-util/build/os-auto.mak pjmedia/build/os-auto.mak pjsip/build/os-auto.mak - third_party/Makefile - third_party/build/portaudio/Makefile + third_party/build/portaudio/os-auto.mak + third_party/build/os-auto.mak ]) @@ -517,3 +517,15 @@ esac AC_SUBST(CC) AC_OUTPUT() + +AC_MSG_RESULT([ + +The configuration for current target has been written to 'build.mak', and 'os-auto.mak' in various build directories. + +Customizations can be put in: + - 'user.mak' + - 'pjlib/include/pj/config_site.h' + +The next step now is to run 'make dep' and 'make'. +]) + diff --git a/build/os-linux.mak b/build/os-linux.mak index 4c9e4ec38..d3783b843 100644 --- a/build/os-linux.mak +++ b/build/os-linux.mak @@ -2,7 +2,7 @@ export OS_CFLAGS := $(CC_DEF)PJ_LINUX=1 export OS_CXXFLAGS := -export OS_LDFLAGS := $(CC_LIB)pthread$(LIBEXT2) -lm +export OS_LDFLAGS := -lportaudio-$(TARGET_NAME) -lgsmcodec-$(TARGET_NAME) -lilbccodec-$(TARGET_NAME) -lspeex-$(TARGET_NAME) -lresample-$(TARGET_NAME) $(CC_LIB)pthread$(LIBEXT2) -lm export OS_SOURCES := diff --git a/configure-legacy b/configure-legacy index 4e16315ee..a84cc5e47 100755 --- a/configure-legacy +++ b/configure-legacy @@ -1,5 +1,7 @@ #!/bin/sh +PJDIR=`pwd` + # # Detect machine, unless the choice has been made already. # @@ -91,16 +93,18 @@ if test -f build.mak; then cp -f build.mak build.mak.old fi -echo 'Writing build.mak as follows:' -echo " MACHINE_NAME = $MACHINE_NAME" -echo " OS_NAME = $OS_NAME" -echo " HOST_NAME = $HOST_NAME" -echo " CC_NAME = $CC_NAME" -echo " TARGET_NAME = $TARGET_NAME" -echo " CROSS_COMPILE= $CROSS_COMPILE" -echo " LINUX_POLL = $LINUX_POLL" +echo 'build.mak configurations are set as follows:' +echo " PJDIR = $PJDIR" +echo " MACHINE_NAME = $MACHINE_NAME" +echo " OS_NAME = $OS_NAME" +echo " HOST_NAME = $HOST_NAME" +echo " CC_NAME = $CC_NAME" +echo " TARGET_NAME = $TARGET_NAME" +echo " CROSS_COMPILE = $CROSS_COMPILE" +echo " LINUX_POLL = $LINUX_POLL" echo "# Auto-generated build.mak" > build.mak +echo "export PJDIR := $PJDIR" >> build.mak echo "export MACHINE_NAME := $MACHINE_NAME" >> build.mak echo "export OS_NAME := $OS_NAME" >> build.mak echo "export HOST_NAME := $HOST_NAME" >> build.mak @@ -109,8 +113,31 @@ echo "export TARGET_NAME := $TARGET_NAME" >> build.mak echo "export CROSS_COMPILE := $CROSS_COMPILE" >> build.mak echo "export LINUX_POLL := $LINUX_POLL" >> build.mak +echo >> build.mak + +cat << EOF >> build.mak +export APP_CC = \$(CROSS_COMPILE)\$(CC_NAME) + +export APP_CFLAGS = \$(CC_CFLAGS) \$(OS_CFLAGS) \$(HOST_CFLAGS) \$(M_CFLAGS) \$(CFLAGS) -I\$(PJDIR)/pjlib/include -I\$(PJDIR)/pjlib-util/include -I\$(PJDIR)/pjnath/include -I\$(PJDIR)/pjmedia/include -I\$(PJDIR)/pjsip/include + +export APP_CXXFLAGS = \$(APP_CFLAGS) + +export APP_LDFLAGS = -L\$(PJDIR)/pjlib/lib -L\$(PJDIR)/pjlib-util/lib -L\$(PJDIR)/pjnath/lib -L\$(PJDIR)/pjmedia/lib -L\$(PJDIR)/pjsip/lib -L\$(PJDIR)/third_party/lib + +export APP_LDLIBS = -lpjsua-\$(TARGET_NAME) -lpjsip-ua-\$(TARGET_NAME) -lpjsip-simple-\$(TARGET_NAME) -lpjsip-\$(TARGET_NAME) -lpjmedia-codec-\$(TARGET_NAME) -lpjmedia-\$(TARGET_NAME) -lpjnath-\$(TARGET_NAME) -lpjlib-util-\$(TARGET_NAME) \$(APP_THIRD_PARTY_LIBS) -lpj-\$(TARGET_NAME) \$(CC_LDFLAGS) \$(OS_LDFLAGS) \$(M_LDFLAGS) \$(HOST_LDFLAGS) \$(LDFLAGS) + +export PJ_DIR = \$(PJDIR) +export PJ_CC = \$(APP_CC) +export PJ_CFLAGS = \$(APP_CFLAGS) +export PJ_CXXFLAGS = \$(APP_CXXFLAGS) +export PJ_LDFLAGS = \$(APP_LDFLAGS) +export PJ_LDLIBS = \$(APP_LDLIBS) + +EOF + touch user.mak + echo echo "The configuration for current host has been written to 'build.mak'." echo "Customizations can be put in:" diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile index 7e9d060d1..11ffdc9df 100644 --- a/pjmedia/build/Makefile +++ b/pjmedia/build/Makefile @@ -1,7 +1,10 @@ include ../../build.mak + +THIRD_PARTY:=$(PJDIR)/third_party +PA_DIR := $(THIRD_PARTY)/build/portaudio/src + include $(PJDIR)/build/common.mak -THIRD_PARTY:=../../third_party RULES_MAK := $(PJDIR)/build/rules.mak PJLIB_LIB:=$(PJDIR)/pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) @@ -38,7 +41,7 @@ export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJMEDIA_LIB)) \ export PJMEDIA_SRCDIR = ../src/pjmedia export PJMEDIA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ alaw_ulaw.o alaw_ulaw_table.o clock_thread.o codec.o \ - conference.o echo_common.o echo_port.o echo_speex.o \ + conference.o echo_common.o echo_port.o \ echo_suppress.o endpoint.o errno.o \ g711.o jbuf.o master_port.o mem_capture.o mem_player.o \ null_port.o plc_common.o port.o splitcomb.o \ diff --git a/pjmedia/build/os-auto.mak.in b/pjmedia/build/os-auto.mak.in index 3c95d0d99..7e18ea921 100644 --- a/pjmedia/build/os-auto.mak.in +++ b/pjmedia/build/os-auto.mak.in @@ -52,6 +52,11 @@ export CFLAGS += -DPJMEDIA_HAS_SPEEX_CODEC=0 else export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include export CODEC_OBJS += speex_codec.o + +ifneq (@ac_no_speex_aec@,1) +export PJMEDIA_OBJS += echo_speex.o +endif + endif ifeq ($(AC_NO_ILBC_CODEC),1) diff --git a/pjmedia/build/os-darwinos.mak b/pjmedia/build/os-darwinos.mak index ea7492a52..f76d3403b 100644 --- a/pjmedia/build/os-darwinos.mak +++ b/pjmedia/build/os-darwinos.mak @@ -1,17 +1,91 @@ -# -# OS specific configuration for Darwin/MacOS target. -# + +# PJMEDIA features exclusion +export CFLAGS += + +# Define the desired sound device backend +# Valid values are: +# - pa_unix: PortAudio on Unix (OSS or ALSA) +# - pa_darwinos: PortAudio on MacOSX (CoreAudio) +# - pa_old_darwinos: PortAudio on MacOSX (old CoreAudio, for OSX 10.2) +# - pa_win32: PortAudio on Win32 (WMME) +# - ds: Win32 DirectSound (dsound.c) +# - null: Null sound device (nullsound.c) +AC_PJMEDIA_SND=pa_old_darwinos + +# For Unix, specify if ALSA should be supported +AC_PA_USE_ALSA=0 # -# PJMEDIA_OBJS specified here are object files to be included in PJMEDIA -# (the library) for this specific operating system. Object files common -# to all operating systems should go in Makefile instead. +# Codecs # -export PJMEDIA_OBJS += $(PA_DIR)/pa_mac_hostapis.o \ - $(PA_DIR)/pa_unix_util.o \ - $(PA_DIR)/pa_mac_core.o +AC_NO_G711_CODEC=0 +AC_NO_L16_CODEC=0 +AC_NO_GSM_CODEC=0 +AC_NO_SPEEX_CODEC=0 +AC_NO_ILBC_CODEC=0 + +export CODEC_OBJS= + +ifeq ($(AC_NO_G711_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_G711_CODEC=0 +else +export CODEC_OBJS += +endif + +ifeq ($(AC_NO_L16_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_L16_CODEC=0 +else +export CODEC_OBJS += l16.o +endif + +ifeq ($(AC_NO_GSM_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_GSM_CODEC=0 +else +export CODEC_OBJS += gsm.o +endif + +ifeq ($(AC_NO_SPEEX_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_SPEEX_CODEC=0 +else +export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include +export CODEC_OBJS += speex_codec.o + +#ifeq (@ac_no_speex_aec@,1) +ifeq (0,1) +export PJMEDIA_OBJS += echo_speex.o +endif + +endif + +ifeq ($(AC_NO_ILBC_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_ILBC_CODEC=0 +else +export CODEC_OBJS += ilbc.o +endif + + +# +# PortAudio +# +ifneq ($(findstring pa,$(AC_PJMEDIA_SND)),) +export CFLAGS += -I$(THIRD_PARTY)/build/portaudio -I$(THIRD_PARTY)/portaudio/include -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_PORTAUDIO_SOUND +export SOUND_OBJS = pasound.o +endif + +# +# Win32 DirectSound +# +ifeq ($(AC_PJMEDIA_SND),ds) +export SOUND_OBJS = dsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_WIN32_DIRECT_SOUND +endif + +# +# Last resort, null sound device +# +ifeq ($(AC_PJMEDIA_SND),null) +export SOUND_OBJS = nullsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_NULL_SOUND +endif -# $(PA_DIR)/pa_mac_alt.o -# $(PA_DIR)/ringbuffer.o -export OS_CFLAGS += $(CC_DEF)PA_USE_COREAUDIO=1 $(CC_DEF)PA_BIG_ENDIAN=1 diff --git a/pjmedia/build/os-linux.mak b/pjmedia/build/os-linux.mak index adc1936b6..f707eb5cd 100644 --- a/pjmedia/build/os-linux.mak +++ b/pjmedia/build/os-linux.mak @@ -1,14 +1,85 @@ -# -# OS specific configuration for Linux OS target. -# +# Linux + +# Define the desired sound device backend +# Valid values are: +# - pa_unix: PortAudio on Unix (OSS or ALSA) +# - pa_darwinos: PortAudio on MacOSX (CoreAudio) +# - pa_old_darwinos: PortAudio on MacOSX (old CoreAudio, for OSX 10.2) +# - pa_win32: PortAudio on Win32 (WMME) +# - ds: Win32 DirectSound (dsound.c) +# - null: Null sound device (nullsound.c) +AC_PJMEDIA_SND=pa_unix # -# PJMEDIA_OBJS specified here are object files to be included in PJMEDIA -# (the library) for this specific operating system. Object files common -# to all operating systems should go in Makefile instead. +# Codecs # -export PJMEDIA_OBJS += $(PA_DIR)/pa_unix_hostapis.o $(PA_DIR)/pa_unix_util.o \ - $(PA_DIR)/pa_unix_oss.o -# $(PA_DIR)/pa_linux_alsa.o +AC_NO_G711_CODEC=0 +AC_NO_L16_CODEC=0 +AC_NO_GSM_CODEC=0 +AC_NO_SPEEX_CODEC=0 +AC_NO_ILBC_CODEC=0 + +export CODEC_OBJS= + +ifeq ($(AC_NO_G711_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_G711_CODEC=0 +else +export CODEC_OBJS += +endif + +ifeq ($(AC_NO_L16_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_L16_CODEC=0 +else +export CODEC_OBJS += l16.o +endif + +ifeq ($(AC_NO_GSM_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_GSM_CODEC=0 +else +export CODEC_OBJS += gsm.o +endif + +ifeq ($(AC_NO_SPEEX_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_SPEEX_CODEC=0 +else +export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include +export CODEC_OBJS += speex_codec.o + +ifeq (1,1) +export PJMEDIA_OBJS += echo_speex.o +endif + +endif + +ifeq ($(AC_NO_ILBC_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_ILBC_CODEC=0 +else +export CODEC_OBJS += ilbc.o +endif + + +# +# PortAudio +# +ifneq ($(findstring pa,$(AC_PJMEDIA_SND)),) +export CFLAGS += -I$(THIRD_PARTY)/build/portaudio -I$(THIRD_PARTY)/portaudio/include -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_PORTAUDIO_SOUND +export SOUND_OBJS = pasound.o +endif + +# +# Win32 DirectSound +# +ifeq ($(AC_PJMEDIA_SND),ds) +export SOUND_OBJS = dsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_WIN32_DIRECT_SOUND +endif + +# +# Last resort, null sound device +# +ifeq ($(AC_PJMEDIA_SND),null) +export SOUND_OBJS = nullsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_NULL_SOUND +endif + -export OS_CFLAGS += $(CC_DEF)PA_USE_OSS=1 diff --git a/pjmedia/build/os-win32.mak b/pjmedia/build/os-win32.mak index 780953368..0767ceeca 100644 --- a/pjmedia/build/os-win32.mak +++ b/pjmedia/build/os-win32.mak @@ -1,26 +1,87 @@ -# -# OS specific configuration for Win32 OS target. -# +# PJMEDIA features exclusion +export CFLAGS += + +# Define the desired sound device backend +# Valid values are: +# - pa_unix: PortAudio on Unix (OSS or ALSA) +# - pa_darwinos: PortAudio on MacOSX (CoreAudio) +# - pa_old_darwinos: PortAudio on MacOSX (old CoreAudio, for OSX 10.2) +# - pa_win32: PortAudio on Win32 (WMME) +# - ds: Win32 DirectSound (dsound.c) +# - null: Null sound device (nullsound.c) +AC_PJMEDIA_SND=pa_win32 # -# PJMEDIA_OBJS specified here are object files to be included in PJMEDIA -# (the library) for this specific operating system. Object files common -# to all operating systems should go in Makefile instead. +# Codecs # -export PJMEDIA_OBJS += $(PA_DIR)/pa_win_hostapis.o $(PA_DIR)/pa_win_util.o \ - $(PA_DIR)/pa_win_wmme.o +AC_NO_G711_CODEC=0 +AC_NO_L16_CODEC=0 +AC_NO_GSM_CODEC=0 +AC_NO_SPEEX_CODEC=0 +AC_NO_ILBC_CODEC=0 -export OS_CFLAGS += -DPA_NO_ASIO -DPA_NO_DS \ - -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_PORTAUDIO_SOUND +export CODEC_OBJS= -# Example: -# to activate Null sound, uncomment these two lines below. -#export SOUND_OBJS = $(NULLSOUND_OBJS) -#export OS_CFLAGS += $(CC_DEF)PJMEDIA_HAS_NULL_SOUND +ifeq ($(AC_NO_G711_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_G711_CODEC=0 +else +export CODEC_OBJS += +endif + +ifeq ($(AC_NO_L16_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_L16_CODEC=0 +else +export CODEC_OBJS += l16.o +endif + +ifeq ($(AC_NO_GSM_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_GSM_CODEC=0 +else +export CODEC_OBJS += gsm.o +endif + +ifeq ($(AC_NO_SPEEX_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_SPEEX_CODEC=0 +else +export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include +export CODEC_OBJS += speex_codec.o + +#ifeq (@ac_no_speex_aec@,1) +ifeq (0,1) +export PJMEDIA_OBJS += echo_speex.o +endif + +endif + +ifeq ($(AC_NO_ILBC_CODEC),1) +export CFLAGS += -DPJMEDIA_HAS_ILBC_CODEC=0 +else +export CODEC_OBJS += ilbc.o +endif + + +# +# PortAudio +# +ifneq ($(findstring pa,$(AC_PJMEDIA_SND)),) +export CFLAGS += -I$(THIRD_PARTY)/build/portaudio -I$(THIRD_PARTY)/portaudio/include -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_PORTAUDIO_SOUND +export SOUND_OBJS = pasound.o +endif + +# +# Win32 DirectSound +# +ifeq ($(AC_PJMEDIA_SND),ds) +export SOUND_OBJS = dsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_WIN32_DIRECT_SOUND +endif + +# +# Last resort, null sound device +# +ifeq ($(AC_PJMEDIA_SND),null) +export SOUND_OBJS = nullsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_NULL_SOUND +endif -# Example: -# to include only GSM and exclude Speex codec, uncomment the "export" line below. -# Note that you'll need to put "#define PJMEDIA_HAS_SPEEX_CODEC 0" in -# -#export CODEC_OBJS = $(GSM_OBJS) diff --git a/pjmedia/src/pjmedia/errno.c b/pjmedia/src/pjmedia/errno.c index e23c9a89c..c2093430e 100644 --- a/pjmedia/src/pjmedia/errno.c +++ b/pjmedia/src/pjmedia/errno.c @@ -19,7 +19,9 @@ #include #include #include -#include +#if PJMEDIA_SOUND_IMPLEMENTATION == PJMEDIA_SOUND_PORTAUDIO_SOUND +# include +#endif diff --git a/pjmedia/src/pjmedia/sound_port.c b/pjmedia/src/pjmedia/sound_port.c index 358f616cf..1f64344ba 100644 --- a/pjmedia/src/pjmedia/sound_port.c +++ b/pjmedia/src/pjmedia/sound_port.c @@ -25,14 +25,6 @@ #include #include /* pj_memset() */ -#ifndef PJMEDIA_SOUND_HAS_AEC -# define PJMEDIA_SOUND_HAS_AEC 1 -#endif - -#if defined(PJMEDIA_SOUND_HAS_AEC) && PJMEDIA_SOUND_HAS_AEC!=0 -# include -#endif - //#define SIMULATE_LOST_PCT 20 #define AEC_TAIL 128 /* default AEC length in ms */ #define AEC_SUSPEND_LIMIT 5 /* seconds of no activity */ diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile index 66b86f113..e9fc2d321 100644 --- a/pjsip/build/Makefile +++ b/pjsip/build/Makefile @@ -89,7 +89,7 @@ export TEST_OBJS += dlg_core_test.o dns_test.o msg_err_test.o \ tsx_basic_test.o tsx_bench.o tsx_uac_test.o \ tsx_uas_test.o txdata_test.o uri_test.o export TEST_CFLAGS += $(_CFLAGS) -export TEST_LDFLAGS += $(APP_LDFLAGS) $(APP_LDLIBS) +export TEST_LDFLAGS += $(PJ_LDFLAGS) $(PJ_LDLIBS) export TEST_EXE := ../bin/pjsip-test-$(TARGET_NAME)$(HOST_EXE) diff --git a/third_party/Makefile b/third_party/Makefile deleted file mode 100644 index 6a43479c1..000000000 --- a/third_party/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -include ../build.mak -include $(PJDIR)/build/host-$(HOST_NAME).mak - -DIRS = build/resample - -ifeq (,1) -else -DIRS += build/gsm -endif - -ifeq (,1) -else -DIRS += build/ilbc -endif - -ifeq (,1) -else -DIRS += build/speex -endif - -ifeq (pa_unix,pa_old_darwinos) -DIRS += build/portaudio -endif - -ifeq (pa_unix,pa_darwinos) -DIRS += build/portaudio -endif - -ifeq (pa_unix,pa_win32) -DIRS += build/portaudio -endif - -ifeq (pa_unix,pa_unix) -DIRS += build/portaudio -endif - - - -all clean dep depend distclean realclean: - for dir in $(DIRS); do \ - if [ -d $$dir ]; then \ - if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \ - true; \ - else \ - exit 1; \ - fi; \ - fi; \ - done - diff --git a/third_party/Makefile.in b/third_party/Makefile.in deleted file mode 100644 index 43c646d41..000000000 --- a/third_party/Makefile.in +++ /dev/null @@ -1,49 +0,0 @@ -include ../build.mak -include $(PJDIR)/build/host-$(HOST_NAME).mak - -DIRS = build/resample - -ifeq (@ac_no_gsm_codec@,1) -else -DIRS += build/gsm -endif - -ifeq (@ac_no_ilbc_codec@,1) -else -DIRS += build/ilbc -endif - -ifeq (@ac_no_speex_codec@,1) -else -DIRS += build/speex -endif - -ifeq (@ac_pjmedia_snd@,pa_old_darwinos) -DIRS += build/portaudio -endif - -ifeq (@ac_pjmedia_snd@,pa_darwinos) -DIRS += build/portaudio -endif - -ifeq (@ac_pjmedia_snd@,pa_win32) -DIRS += build/portaudio -endif - -ifeq (@ac_pjmedia_snd@,pa_unix) -DIRS += build/portaudio -endif - - - -all clean dep depend distclean realclean: - for dir in $(DIRS); do \ - if [ -d $$dir ]; then \ - if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \ - true; \ - else \ - exit 1; \ - fi; \ - fi; \ - done - diff --git a/third_party/build/Makefile b/third_party/build/Makefile new file mode 100644 index 000000000..204adcf56 --- /dev/null +++ b/third_party/build/Makefile @@ -0,0 +1,12 @@ +include ../../build.mak +include $(PJDIR)/build/common.mak + +all clean dep depend distclean realclean: + for dir in $(DIRS); do \ + if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \ + true; \ + else \ + exit 1; \ + fi; \ + done + diff --git a/third_party/build/os-auto.mak.in b/third_party/build/os-auto.mak.in new file mode 100644 index 000000000..82c90e3b9 --- /dev/null +++ b/third_party/build/os-auto.mak.in @@ -0,0 +1,17 @@ +DIRS = resample + +ifneq (@ac_no_gsm_codec@,1) +DIRS += gsm +endif + +ifneq (@ac_no_ilbc_codec@,1) +DIRS += ilbc +endif + +ifneq (@ac_no_speex_codec@,1) +DIRS += speex +endif + +ifneq ($(findstring pa,@ac_pjmedia_snd@),) +DIRS += portaudio +endif diff --git a/third_party/build/os-darwinos.mak b/third_party/build/os-darwinos.mak new file mode 100644 index 000000000..2e7dfe06a --- /dev/null +++ b/third_party/build/os-darwinos.mak @@ -0,0 +1,7 @@ +DIRS = resample +DIRS += gsm +DIRS += ilbc +DIRS += speex +DIRS += portaudio + + diff --git a/third_party/build/os-linux.mak b/third_party/build/os-linux.mak new file mode 100644 index 000000000..2e7dfe06a --- /dev/null +++ b/third_party/build/os-linux.mak @@ -0,0 +1,7 @@ +DIRS = resample +DIRS += gsm +DIRS += ilbc +DIRS += speex +DIRS += portaudio + + diff --git a/third_party/build/os-win32.mak b/third_party/build/os-win32.mak new file mode 100644 index 000000000..2e7dfe06a --- /dev/null +++ b/third_party/build/os-win32.mak @@ -0,0 +1,7 @@ +DIRS = resample +DIRS += gsm +DIRS += ilbc +DIRS += speex +DIRS += portaudio + + diff --git a/third_party/build/portaudio/Makefile b/third_party/build/portaudio/Makefile new file mode 100644 index 000000000..e1cfa654c --- /dev/null +++ b/third_party/build/portaudio/Makefile @@ -0,0 +1,69 @@ +# @configure_input@ +include ../../../build.mak +include $(PJDIR)/build/common.mak + +export LIBDIR := ../../lib + +RULES_MAK := $(PJDIR)/build/rules.mak + +export PORTAUDIO_LIB:=../../lib/libportaudio-$(TARGET_NAME)$(LIBEXT) + +PORTAUDIO_OBJS += pa_allocation.o \ + pa_converters.o \ + pa_cpuload.o \ + pa_dither.o \ + pa_debugprint.o \ + pa_front.o \ + pa_process.o \ + pa_skeleton.o \ + pa_stream.o \ + pa_trace.o + + +############################################################################### +# Gather all flags. +# +export _CFLAGS += $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \ + $(CFLAGS) $(CC_INC). $(CC_INC)src +export _CXXFLAGS+= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ + $(HOST_CXXFLAGS) $(CXXFLAGS) +export _LDFLAGS += $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ + $(LDFLAGS) + +############################################################################### +# Defines for building PORTAUDIO library +# +export PORTAUDIO_SRCDIR = src +export PORTAUDIO_OBJS += +export PORTAUDIO_CFLAGS += $(_CFLAGS) + +export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT +############################################################################### +# Main entry +# +# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory. +# +TARGETS := libportaudio + +all: $(TARGETS) + +dep: depend +distclean: realclean + +.PHONY: dep depend libportaudio clean realclean distclean + +libportaudio: + $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(PORTAUDIO_LIB) + +clean: + $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@ + +realclean: + $(subst @@,$(subst /,$(HOST_PSEP),.libportaudio-$(TARGET_NAME).depend),$(HOST_RMR)) + + $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@ + +depend: + $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@ + echo '$(PORTAUDIO_LIB): .libportaudio-$(TARGET_NAME).depend' >> .libportaudio-$(TARGET_NAME).depend; \ + diff --git a/third_party/build/portaudio/Makefile.in b/third_party/build/portaudio/Makefile.in deleted file mode 100644 index 223e48433..000000000 --- a/third_party/build/portaudio/Makefile.in +++ /dev/null @@ -1,141 +0,0 @@ -# @configure_input@ -include ../../../build.mak -include $(PJDIR)/build/common.mak - -export LIBDIR := ../../lib - -RULES_MAK := $(PJDIR)/build/rules.mak - -export PORTAUDIO_LIB:=../../lib/libportaudio-$(TARGET_NAME)$(LIBEXT) - -PORTAUDIO_OBJS := pa_allocation.o \ - pa_converters.o \ - pa_cpuload.o \ - pa_dither.o \ - pa_front.o \ - pa_process.o \ - pa_skeleton.o \ - pa_stream.o \ - pa_trace.o - - -# Define the desired sound device backend -# Valid values are: -# - pa_unix: PortAudio on Unix (OSS or ALSA) -# - pa_darwinos: PortAudio on MacOSX (CoreAudio) -# - pa_old_darwinos: PortAudio on MacOSX (old CoreAudio, for OSX 10.2) -# - pa_win32: PortAudio on Win32 (WMME) -# -# There are other values below, but these are handled by PJMEDIA's Makefile -# - ds: Win32 DirectSound (dsound.c) -# - null: Null sound device (nullsound.c) -AC_PJMEDIA_SND=@ac_pjmedia_snd@ - -# For Unix, specify if ALSA should be supported -AC_PA_USE_ALSA=@ac_pa_use_alsa@ - -# Additional PortAudio CFLAGS are in @ac_pa_cflags@ - - -# -# PortAudio on Unix -# -ifeq ($(AC_PJMEDIA_SND),pa_unix) -# Host APIs and utils -export PORTAUDIO_OBJS += pa_unix_hostapis.o pa_unix_util.o - -# Include ALSA? -ifeq ($(AC_PA_USE_ALSA),1) -export CFLAGS += -DPA_USE_ALSA=1 -export PORTAUDIO_OBJS += pa_linux_alsa.o -endif - -export CFLAGS += -DPA_USE_OSS=1 -export CFLAGS += @ac_pa_cflags@ -export PORTAUDIO_OBJS += pa_unix_oss.o -endif - - -# -# PortAudio on MacOS X (using current PortAudio) -# -ifeq ($(AC_PJMEDIA_SND),pa_darwinos) -export PORTAUDIO_OBJS +=pa_mac_hostapis.o \ - pa_unix_util.o \ - pa_mac_core.o \ - pa_mac_core_blocking.o \ - pa_mac_core_utilities.o \ - pa_ringbuffer.o -export CFLAGS += -DPA_USE_COREAUDIO=1 -export CFLAGS += @ac_pa_cflags@ -endif - -# -# PortAudio on MacOS X (using old PortAudio, for MacOS X 10.2.x) -# -ifeq ($(AC_PJMEDIA_SND),pa_old_darwinos) -export PORTAUDIO_OBJS +=pa_mac_hostapis.o \ - pa_unix_util.o \ - pa_mac_core_old.o -export CFLAGS += -DPA_USE_COREAUDIO=1 -export CFLAGS += @ac_pa_cflags@ -endif - -# -# -# PortAudio on Win32 (WMME) -# -ifeq ($(AC_PJMEDIA_SND),pa_win32) -export PORTAUDIO_OBJS += pa_win_hostapis.o pa_win_util.o \ - pa_win_wmme.o -export CFLAGS += -DPA_NO_ASIO -DPA_NO_DS -endif - - -############################################################################### -# Gather all flags. -# -export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \ - $(CFLAGS) $(CC_INC). $(CC_INC)src -export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ - $(HOST_CXXFLAGS) $(CXXFLAGS) -export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ - $(LDFLAGS) - -############################################################################### -# Defines for building PORTAUDIO library -# -export PORTAUDIO_SRCDIR = src -export PORTAUDIO_OBJS += -export PORTAUDIO_CFLAGS += $(_CFLAGS) - -export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT -############################################################################### -# Main entry -# -# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory. -# -TARGETS := libportaudio - -all: $(TARGETS) - -dep: depend -distclean: realclean - -.PHONY: dep depend libportaudio clean realclean distclean - -libportaudio: - $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(PORTAUDIO_LIB) - -clean: - $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@ - -realclean: - $(subst @@,$(subst /,$(HOST_PSEP),.libportaudio-$(TARGET_NAME).depend),$(HOST_RMR)) - - $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@ - -depend: - $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@ - echo '$(PORTAUDIO_LIB): .libportaudio-$(TARGET_NAME).depend' >> .libportaudio-$(TARGET_NAME).depend; \ - diff --git a/third_party/build/portaudio/os-auto.mak.in b/third_party/build/portaudio/os-auto.mak.in new file mode 100644 index 000000000..288c3f504 --- /dev/null +++ b/third_party/build/portaudio/os-auto.mak.in @@ -0,0 +1,73 @@ +# @configure_input@ + +# Define the desired sound device backend +# Valid values are: +# - pa_unix: PortAudio on Unix (OSS or ALSA) +# - pa_darwinos: PortAudio on MacOSX (CoreAudio) +# - pa_old_darwinos: PortAudio on MacOSX (old CoreAudio, for OSX 10.2) +# - pa_win32: PortAudio on Win32 (WMME) +# +# There are other values below, but these are handled by PJMEDIA's Makefile +# - ds: Win32 DirectSound (dsound.c) +# - null: Null sound device (nullsound.c) +AC_PJMEDIA_SND=@ac_pjmedia_snd@ + +# For Unix, specify if ALSA should be supported +AC_PA_USE_ALSA=@ac_pa_use_alsa@ + +# Additional PortAudio CFLAGS are in @ac_pa_cflags@ + + +# +# PortAudio on Unix +# +ifeq ($(AC_PJMEDIA_SND),pa_unix) +# Host APIs and utils +export PORTAUDIO_OBJS += pa_unix_hostapis.o pa_unix_util.o + +# Include ALSA? +ifeq ($(AC_PA_USE_ALSA),1) +export CFLAGS += -DPA_USE_ALSA=1 +export PORTAUDIO_OBJS += pa_linux_alsa.o +endif + +export CFLAGS += -DPA_USE_OSS=1 +export CFLAGS += @ac_pa_cflags@ +export PORTAUDIO_OBJS += pa_unix_oss.o +endif + + +# +# PortAudio on MacOS X (using current PortAudio) +# +ifeq ($(AC_PJMEDIA_SND),pa_darwinos) +export PORTAUDIO_OBJS +=pa_mac_hostapis.o \ + pa_unix_util.o \ + pa_mac_core.o \ + pa_mac_core_blocking.o \ + pa_mac_core_utilities.o \ + pa_ringbuffer.o +export CFLAGS += -DPA_USE_COREAUDIO=1 +export CFLAGS += @ac_pa_cflags@ +endif + +# +# PortAudio on MacOS X (using old PortAudio, for MacOS X 10.2.x) +# +ifeq ($(AC_PJMEDIA_SND),pa_old_darwinos) +export PORTAUDIO_OBJS +=pa_mac_hostapis.o \ + pa_unix_util.o \ + pa_mac_core_old.o +export CFLAGS += -DPA_USE_COREAUDIO=1 +export CFLAGS += @ac_pa_cflags@ +endif + +# +# +# PortAudio on Win32 (WMME) +# +ifeq ($(AC_PJMEDIA_SND),pa_win32) +export PORTAUDIO_OBJS += pa_win_hostapis.o pa_win_util.o \ + pa_win_wmme.o +export CFLAGS += -DPA_NO_ASIO -DPA_NO_DS +endif diff --git a/third_party/build/portaudio/os-linux.mak b/third_party/build/portaudio/os-linux.mak new file mode 100644 index 000000000..508948d39 --- /dev/null +++ b/third_party/build/portaudio/os-linux.mak @@ -0,0 +1,34 @@ +# @configure_input@ + +# Define the desired sound device backend +# Valid values are: +# - pa_unix: PortAudio on Unix (OSS or ALSA) +# - pa_darwinos: PortAudio on MacOSX (CoreAudio) +# - pa_old_darwinos: PortAudio on MacOSX (old CoreAudio, for OSX 10.2) +# - pa_win32: PortAudio on Win32 (WMME) +# +# There are other values below, but these are handled by PJMEDIA's Makefile +# - ds: Win32 DirectSound (dsound.c) +# - null: Null sound device (nullsound.c) +AC_PJMEDIA_SND=pa_unix + +# For Unix, specify if ALSA should be supported +AC_PA_USE_ALSA=0 + +# +# PortAudio on Unix +# +ifeq ($(AC_PJMEDIA_SND),pa_unix) +# Host APIs and utils +export PORTAUDIO_OBJS += pa_unix_hostapis.o pa_unix_util.o + +# Include ALSA? +ifeq ($(AC_PA_USE_ALSA),1) +export CFLAGS += -DPA_USE_ALSA=1 +export PORTAUDIO_OBJS += pa_linux_alsa.o +endif + +export CFLAGS += -DPA_USE_OSS=1 -DHAVE_SYS_SOUNDCARD_H +export PORTAUDIO_OBJS += pa_unix_oss.o +endif + diff --git a/user.mak.sample b/user.mak.sample new file mode 100644 index 000000000..9a145afc4 --- /dev/null +++ b/user.mak.sample @@ -0,0 +1,2 @@ +export CFLAGS += -Wno-unused-label -Werror +export LDFLAGS += -