]> mj.ucw.cz Git - libucw.git/blobdiff - ucw/perl/UCW/Configure/LibUCW.pm
Merge branch 'master' into dev-lib
[libucw.git] / ucw / perl / UCW / Configure / LibUCW.pm
index 445c4a262956da4d6d65e820182bed146fea7919..141dbc9093489cb0667fcdd9402c1292d7718596 100644 (file)
@@ -6,6 +6,9 @@
 package UCW::Configure::LibUCW;
 use UCW::Configure;
 
+use strict;
+use warnings;
+
 # Determine page size
 Test("CPU_PAGE_SIZE", "Determining page size", sub {
        my $p;
@@ -26,10 +29,10 @@ if (IsSet("CONFIG_LARGE_FILES") && IsSet("CONFIG_LINUX")) {
 }
 
 # Decide how will ucw/partmap.c work
-Set("PARTMAP_IS_MMAP") if IsSet("CPU_64BIT_POINTERS");
+Set("CONFIG_UCW_PARTMAP_IS_MMAP") if IsSet("CPU_64BIT_POINTERS");
 
 # Option for ucw/mempool.c
-Set("POOL_IS_MMAP");
+Set("CONFIG_UCW_POOL_IS_MMAP");
 
 # Guess optimal bit width of the radix-sorter
 if (Get("CPU_ARCH") eq "default" || Get("CPU_ARCH") =~ /^i[345]86$/) {
@@ -40,5 +43,32 @@ if (Get("CPU_ARCH") eq "default" || Get("CPU_ARCH") =~ /^i[345]86$/) {
        Set("CONFIG_UCW_RADIX_SORTER_BITS" => 12);
 }
 
+PostConfig {
+       AtWrite {
+               UCW::Configure::C::ConfigHeader("ucw/autoconf.h", [
+                       # Excluded symbols (danger of collision)
+                       '^CONFIG_DEBUG$' => 0,
+
+                       # Included symbols
+                       '^CONFIG_' => 1,
+                       '^CPU_' => 1,
+                       '^(SHERLOCK|UCW)_VERSION(_|$)' => 1,
+
+               ]);
+       } if Get("CONFIG_INSTALL_API");
+
+       # Include direct FB?
+       if (!IsSet("CONFIG_UCW_THREADS") || !IsSet("CONFIG_DIRECT_IO")) {
+               if (IsGiven("CONFIG_UCW_FB_DIRECT") && IsSet("CONFIG_UCW_FB_DIRECT")) {
+                       if (!IsSet("CONFIG_UCW_THREADS")) {
+                               Fail("CONFIG_UCW_FB_DIRECT needs CONFIG_UCW_THREADS");
+                       } else {
+                               Fail("CONFIG_UCW_FB_DIRECT needs CONFIG_DIRECT_IO");
+                       }
+               }
+               UnSet("CONFIG_UCW_FB_DIRECT");
+       }
+};
+
 # We succeeded
 1;