]> git.saurik.com Git - cycript.git/commitdiff
Stop using non-portable (GNU) Makefile features.
authorJay Freeman (saurik) <saurik@saurik.com>
Sat, 15 Jun 2013 10:06:13 +0000 (03:06 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Sat, 15 Jun 2013 10:12:46 +0000 (03:12 -0700)
Makefile.am
configure
configure.ac

index e97813f0f609440e6d1b560173af7ab0749479e9..8430a18a9102bafbc184b1e02ac3aceb54774548 100644 (file)
@@ -26,7 +26,7 @@ cycript_LDADD = libcycript.la
 ldid = true
 entitle = $(ldid) -Scycript.xml
 
-filters = $(shell $(BISON) <(echo '%code{}%%_:') -o/dev/null 2>/dev/null && echo Bison24 || echo Bison23)
+filters = $(CY_FILTERS)
 
 if CY_EXECUTE
 libcycript_la_SOURCES += sig/ffi_type.cpp sig/parse.cpp sig/copy.cpp
@@ -68,27 +68,24 @@ AM_CPPFLAGS += -DCY_ATTACH -DCY_LIBRARY='"$(libdir)/libcycript.$(SO)"'
 Mach/Inject.$(OBJEXT): Trampoline.t.hpp
 
 CLEANFILES += Trampoline.t.lo
-%.t.lo: %.t.cpp Trampoline.hpp Baton.hpp Standard.hpp
+Trampoline.t.lo: Trampoline.t.cpp Trampoline.hpp Baton.hpp Standard.hpp
        $(LTCXXCOMPILE) $(CY_ARCH) -c -o $@ $< -fno-stack-protector -fno-exceptions -O0
-.SECONDARY: Trampoline.t.lo
 
 CLEANFILES += libTrampoline.t.la
-lib%.t.la: %.t.lo
+libTrampoline.t.la: Trampoline.t.lo
        $(CXXLINK) $(CY_ARCH) -rpath $(libdir) $^
-.SECONDARY: libTrampoline.t.la
 
 CLEANFILES += Trampoline.t.hpp
-%.t.hpp: lib%.t.la trampoline.sh
-       $(srcdir)/trampoline.sh $@ $(patsubst %.la,.libs/%.dylib,$<) $* $(SED) $(LIPO) $(NM) $(OTOOL)
-.SECONDARY: Trampoline.t.hpp
+Trampoline.t.hpp: libTrampoline.t.la trampoline.sh
+       $(srcdir)/trampoline.sh $@ .libs/libTrampoline.t.dylib Trampoline $(SED) $(LIPO) $(NM) $(OTOOL)
 endif
 
 CLEANFILES += Cycript.yy
-%.yy: %.yy.in
+Cycript.yy: Cycript.yy.in
        $(srcdir)/Filter.sh <$< >$@ $(filters)
 
 CLEANFILES += Cycript.l
-%.l: %.l.in
+Cycript.l: Cycript.l.in
        $(srcdir)/Filter.sh <$< >$@ $(filters)
 
 CLEANFILES += lex.cy.cpp
index c8099d6c1ec87aa9431c01861198a05563b87f45..cf19be93e1bdd5e5e14586cf98964287ea50e214 100755 (executable)
--- a/configure
+++ b/configure
@@ -665,6 +665,7 @@ CY_EXECUTE
 WEBKIT_LIBS
 WEBKIT_CFLAGS
 CY_ARCH
+CY_FILTERS
 GNUTAR
 GPERF
 FLEX
 fi
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking bison for %code{}" >&5
+$as_echo_n "checking bison for %code{}... " >&6; }
+echo '%code{}%%_:' >conftest.y
+if $BISON conftest.y -o/dev/null 2>/dev/null; then
+
+  for element in Bison24; do
+    haveit=
+    for x in $CY_FILTERS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CY_FILTERS="${CY_FILTERS}${CY_FILTERS:+ }$element"
+    fi
+  done
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+
+  for element in Bison23; do
+    haveit=
+    for x in $CY_FILTERS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CY_FILTERS="${CY_FILTERS}${CY_FILTERS:+ }$element"
+    fi
+  done
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+rm -f conftest.y
+
+
 
 
 
index 351d8fd961067d352d2d4dd73d95d9d0d8f4a60c..bf703f25f92683b9c85d0bb676b561fdba6cedad 100644 (file)
@@ -6,7 +6,7 @@ AC_CONFIG_SRCDIR([Console.cpp])
 AC_CONFIG_AUX_DIR([.])
 AC_CONFIG_MACRO_DIR([m4])
 
-AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability foreign])
+AM_INIT_AUTOMAKE([-Wall -Werror foreign])
 
 AC_PROG_CXX
 AC_PROG_OBJCXX
@@ -60,6 +60,19 @@ CY_CHECK_PROGS_VERSION([GPERF], [gperf], [perfect hash function generator],
 CY_CHECK_PROGS_VERSION([GNUTAR], [tar gtar gnutar], [a very sticky lump of files],
     [--version | $SED -e '1 s/^tar (GNU tar) \(.*\)$/\1/p;d'], [1.19])
 
+AC_MSG_CHECKING([bison for %code{}])
+echo '%code{}%%_:' >conftest.y
+if $BISON conftest.y -o/dev/null 2>/dev/null; then
+    AC_LIB_APPENDTOVAR([CY_FILTERS], [Bison24])
+    AC_MSG_RESULT([yes])
+else
+    AC_LIB_APPENDTOVAR([CY_FILTERS], [Bison23])
+    AC_MSG_RESULT([no])
+fi
+
+rm -f conftest.y
+AC_SUBST([CY_FILTERS])
+
 dnl CY_TRY {{{
 AC_DEFUN([CY_SUCCESS], [cy_good=1])
 AC_DEFUN([CY_FAILURE], [cy_good=0])