[pypy-svn] r57626 - in pypy/dist/pypy: config translator/goal

fijal at codespeak.net fijal at codespeak.net
Tue Aug 26 12:28:34 CEST 2008


Author: fijal
Date: Tue Aug 26 12:28:33 2008
New Revision: 57626

Modified:
   pypy/dist/pypy/config/translationoption.py
   pypy/dist/pypy/translator/goal/translate.py
Log:
Some wild hackery to get cross-compiling to work. Probably needs to be
changed to something saner.


Modified: pypy/dist/pypy/config/translationoption.py
==============================================================================
--- pypy/dist/pypy/config/translationoption.py	(original)
+++ pypy/dist/pypy/config/translationoption.py	Tue Aug 26 12:28:33 2008
@@ -337,3 +337,19 @@
             config.translation.suggest(list_comprehension_operations=True)
         else:
             raise ValueError(word)
+
+# ----------------------------------------------------------------
+
+PLATFORMS = [
+    'host',
+    'maemo',
+]
+
+def set_platform(config, platform):
+    if platform == 'maemo':
+        from pypy.translator.tool.cbuild import ExternalCompilationInfo
+        # XXX evil hackery
+        func_defs = list(ExternalCompilationInfo.__init__.func_defaults)
+        func_defs[-1] = 'maemo'
+        ExternalCompilationInfo.__init__.im_func.func_defaults = tuple(func_defs)
+        

Modified: pypy/dist/pypy/translator/goal/translate.py
==============================================================================
--- pypy/dist/pypy/translator/goal/translate.py	(original)
+++ pypy/dist/pypy/translator/goal/translate.py	Tue Aug 26 12:28:33 2008
@@ -14,6 +14,7 @@
 from pypy.config.translationoption import get_combined_translation_config
 from pypy.config.translationoption import set_opt_level
 from pypy.config.translationoption import OPT_LEVELS, DEFAULT_OPT_LEVEL
+from pypy.config.translationoption import PLATFORMS, set_platform
 
 
 GOALS= [
@@ -51,6 +52,9 @@
     ChoiceOption("opt",
                  "optimization level", OPT_LEVELS, default=DEFAULT_OPT_LEVEL,
                  cmdline="--opt -O"),
+    ChoiceOption("platform",
+                 "target platform", ['host'] + PLATFORMS, default='host',
+                 cmdline='--platform'),
     BoolOption("profile",
                "cProfile (to debug the speed of the translation process)",
                default=False,
@@ -64,6 +68,8 @@
                cmdline="--view", negation=False),
     BoolOption("help", "show this help message and exit", default=False,
                cmdline="-h --help", negation=False),
+    BoolOption("fullhelp", "show full help message and exit", default=False,
+               cmdline="--full-help", negation=False),
     ArbitraryOption("goals", "XXX",
                     defaultfactory=list),
     # xxx default goals ['annotate', 'rtype', 'backendopt', 'source', 'compile']
@@ -156,6 +162,9 @@
                 existing_config=config,
                 translating=True)
 
+    # apply the platform settings
+    set_platform(config, translateconfig.platform)
+
     # apply the optimization level settings
     set_opt_level(config, translateconfig.opt)
 



More information about the Pypy-commit mailing list