[pedevel] Building on Haiku, /boot/common instead of /boot/home/config?

  • From: "scott mc" <scottmc2@xxxxxxxxx>
  • To: pedevel@xxxxxxxxxxxxx
  • Date: Wed, 17 Sep 2008 15:31:09 -0700

Today I tried building Pe on Haiku, but got an error about pcre
missing.  Well it turns out it wasn't missing, but it was installed in
/boot/common instead of /boot/home/config.  I started looking through
the code and found numerous cases where /boot/home/config was hard
coded in.  I assume there's a better way to handle it that I don't yet
know about? Perhaps a MACRO or something like that?
Anyways I ran grep -nri '/boot/home/config' ../trunk to locate all
cases and changed those over to /boot/common, except when it was
looking for config/settings.  Are custom settings eventually also
moving to /boot/common or will those stay in home/config/settings?
Attached is the .diff file.  Making this change did allow pe r537 to
compile on Haiku.
This patch will most likely break building pe on BeOS and/or Zeta, so
probably not something you'd want to apply.  If I can be directed to a
better type of solution this can serve as a guide to finding the cases
that need fixing in a better way.
-scottmc
Index: Extensions/Jamfile
===================================================================
--- Extensions/Jamfile  (revision 537)
+++ Extensions/Jamfile  (working copy)
@@ -2,8 +2,8 @@
 
 SubDirHdrs $(TOP) Sources ;
 
-SubDirSysHdrs /boot/home/config/include ;
-LINKFLAGS += -L/boot/home/config/lib ;
+SubDirSysHdrs /boot/common/include ;
+LINKFLAGS += -L/boot/common/lib ;
 
 # <pe-src>
 PeExtension PrefixLines 
Index: build/BuildSettings
===================================================================
--- build/BuildSettings (revision 537)
+++ build/BuildSettings (working copy)
@@ -47,7 +47,7 @@
        CCFLAGS += -isystem /boot/develop/headers/pcre ;
        C++FLAGS += -isystem /boot/develop/headers/pcre ;
 } else {
-       haveHeadersPcre = [ GLOB /boot/home/config/include : pcre.h ] ;
+       haveHeadersPcre = [ GLOB /boot/common/include : pcre.h ] ;
        if ! $(haveHeadersPcre) {
                Exit "You need to have pcre installed on your system." ;
        }
Index: lpe/lpe.cpp
===================================================================
--- lpe/lpe.cpp (revision 537)
+++ lpe/lpe.cpp (working copy)
@@ -34,7 +34,7 @@
        
 cd ~/projects/pe/lpe
 mwcc -prefix BeHeaders lpe.cpp
-cp lpe ~/config/bin
+cp lpe /boot/common/bin
 */
 
 #include <vector>
Index: Jamrules
===================================================================
--- Jamrules    (revision 537)
+++ Jamrules    (working copy)
@@ -48,7 +48,7 @@
        mkdir $(DISTRO_DIR)/Documentation/gifs ;
        cp -a $(TOP)/doc/gifs/*.gif $(DISTRO_DIR)/Documentation/gifs/ ;
        ln -sf Documentation/index.html $(DISTRO_DIR)/Documentation.html ;
-       ln -sf /boot/home/config/bin/ $(DISTRO_DIR)/\(drag\ lpe\ here\ to\ 
install\) ;
-       cp -a /boot/home/config/lib/libpcre*.so $(DISTRO_DIR)/lib/ ;
+       ln -sf /boot/common/bin/ $(DISTRO_DIR)/\(drag\ lpe\ here\ to\ install\) 
;
+       cp -a /boot/common/lib/libpcre*.so $(DISTRO_DIR)/lib/ ;
 }
 
Index: Sources/Jamfile
===================================================================
--- Sources/Jamfile     (revision 537)
+++ Sources/Jamfile     (working copy)
@@ -40,8 +40,8 @@
 
 DEFINES = $(SAVED_DEFINES) ;
 
-SubDirSysHdrs /boot/home/config/include ;
-LINKFLAGS += -L/boot/home/config/lib ;
+SubDirSysHdrs /boot/common/include ;
+LINKFLAGS += -L/boot/common/lib ;
 
 #<pe-src>
 Application pe : 
Index: doc/VariousTips.html
===================================================================
--- doc/VariousTips.html        (revision 537)
+++ doc/VariousTips.html        (working copy)
@@ -58,9 +58,9 @@
                <p>Incremental search is a powerful feature, which you can 
start by a keystroke or by clicking the Incremental Search button. When Pe is 
in Incremental Search mode, every character you type is added to a search 
string and Pe will immediately try to find that string. By default Incremental 
Search is case insensitive but you can change this.<br>
                The search pattern will be entered into the Find Dialog, so if 
you feel the need to see the search string you entered, you can find it there. 
If you type the Incremental Search command twice, the last search pattern will 
be re-used.
 
-               <p>During installation a commandline application called lpe was 
installed in the config/bin directory. You can use this app to use Pe as if it 
was a commandline editor. To let other commandline based applications like CVS 
use this you should set the environmental variable EDITOR to 
/boot/home/config/bin/lpe. You can do that by adding the following line to your 
UserSetupenvironment file (which you can find in the ~/config/boot directory).
+               <p>During installation a commandline application called lpe was 
installed in the /boot/common/bin directory. You can use this app to use Pe as 
if it was a commandline editor. To let other commandline based applications 
like CVS use this you should set the environmental variable EDITOR to 
/boot/common/bin/lpe. You can do that by adding the following line to your 
UserSetupenvironment file (which you can find in the ~/config/boot directory).
 <code><pre>
-export EDITOR=/boot/home/config/bin/lpe
+export EDITOR=/boot/common/bin/lpe
 </pre></code>
 
                <hr>
Index: Languages/Sources/Lout_Popup.l
===================================================================
--- Languages/Sources/Lout_Popup.l      (revision 537)
+++ Languages/Sources/Lout_Popup.l      (working copy)
@@ -37,7 +37,7 @@
 
   Caveats:
     - This assumes that lout's data is installed under:
-      "/boot/home/config/etc/lout/"
+      "/boot/common/etc/lout/"
       *but*
       if the enviromental variable "$LOUTLIB" is found, it's value is used
       instead (make sure it is correct!).
@@ -196,7 +196,7 @@
 
 static void AddSysDataBase(CLanguageProxy& proxy)
 {
-       static const char* kLoutDataDir = "/boot/home/config/etc/lout/data/";
+       static const char* kLoutDataDir = "/boot/common/etc/lout/data/";
        static const size_t kLoutDataDirLen = strlen(kLoutDataDir);
        static const char* kLoutLib = getenv("LOUTLIB");
 
@@ -236,7 +236,7 @@
 
 static void AddSysInclude(CLanguageProxy& proxy)
 {
-       static const char* kLoutIncludeDir = 
"/boot/home/config/etc/lout/include/";
+       static const char* kLoutIncludeDir = "/boot/common/etc/lout/include/";
        static const size_t kLoutIncludeDirLen = strlen(kLoutIncludeDir);
        static const char* kLoutLib = getenv("LOUTLIB");
 

Other related posts: