Index: SConstruct
--- SConstruct.orig	2015-09-17 14:46:24.000000000 +0200
+++ SConstruct	2022-05-25 20:19:32.656733000 +0200
@@ -166,7 +166,7 @@
 match = re.search('SERF_MAJOR_VERSION ([0-9]+).*'
                   'SERF_MINOR_VERSION ([0-9]+).*'
                   'SERF_PATCH_VERSION ([0-9]+)',
-                  env.File('serf.h').get_contents(),
+                  env.File('serf.h').get_contents().decode('utf-8'),
                   re.DOTALL)
 MAJOR, MINOR, PATCH = [int(x) for x in match.groups()]
 env.Append(MAJOR=str(MAJOR))
@@ -183,7 +183,7 @@
 
 unknown = opts.UnknownVariables()
 if unknown:
-  print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
+  print('Warning: Used unknown variables:', ', '.join(unknown.keys()))
 
 apr = str(env['APR'])
 apu = str(env['APU'])
@@ -249,9 +249,6 @@
 
   if have_gcc:
     env.Append(CFLAGS=['-std=c89'])
-    env.Append(CCFLAGS=['-Wdeclaration-after-statement',
-                        '-Wmissing-prototypes',
-                        '-Wall'])
 
   if debug:
     env.Append(CCFLAGS=['-g'])
@@ -314,7 +311,7 @@
     apr_libs='libapr-1.lib'
     apu_libs='libaprutil-1.lib'
 
-  env.Append(LIBS=[apr_libs, apu_libs])
+  env.Append(LIBS=[apu_libs, apr_libs])
   if not env.get('SOURCE_LAYOUT', None):
     env.Append(LIBPATH=['$APR/lib', '$APU/lib'],
                CPPPATH=['$APR/include/apr-1', '$APU/include/apr-1'])
@@ -357,15 +354,15 @@
   ### dependency upon gcc. probably ParseConfig doesn't know what to do with
   ### the apr-1-config output
   if CALLOUT_OKAY:
+    env.ParseConfig('$APU --ldflags --includes --link-ld --libs')
     env.ParseConfig('$APR --cflags --cppflags --ldflags --includes'
                     ' --link-ld --libs')
-    env.ParseConfig('$APU --ldflags --includes --link-ld --libs')
 
   ### there is probably a better way to run/capture output.
   ### env.ParseConfig() may be handy for getting this stuff into the build
   if CALLOUT_OKAY:
-    apr_libs = os.popen(env.subst('$APR --link-libtool --libs')).read().strip()
     apu_libs = os.popen(env.subst('$APU --link-libtool --libs')).read().strip()
+    apr_libs = os.popen(env.subst('$APR --link-libtool --libs')).read().strip()
   else:
     apr_libs = ''
     apu_libs = ''
@@ -385,12 +382,6 @@
 if sys.platform == 'win32':
   env.Append(CPPDEFINES=['SERF_HAVE_SSPI'])
 
-# On some systems, the -R values that APR describes never make it into actual
-# RPATH flags. We'll manually map all directories in LIBPATH into new
-# flags to set RPATH values.
-for d in env['LIBPATH']:
-  env.Append(RPATH=':'+d)
-
 # Set up the construction of serf-*.pc
 pkgconfig = env.Textfile('serf-%d.pc' % (MAJOR,),
                          env.File('build/serf.pc.in'),
@@ -453,8 +444,8 @@
 
 tenv.Append(CPPDEFINES=['MOCKHTTP_OPENSSL'])
 
-TEST_PROGRAMS = [ 'serf_get', 'serf_response', 'serf_request', 'serf_spider',
-                  'test_all', 'serf_bwtp' ]
+TEST_PROGRAMS = [ 'serf_get', 'serf_response', 'serf_request',
+                  ]
 if sys.platform == 'win32':
   TEST_EXES = [ os.path.join('test', '%s.exe' % (prog)) for prog in TEST_PROGRAMS ]
 else:
