bug-parted
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/2] maint: rename public .h files to .in.h


From: Jim Meyering
Subject: [PATCH 2/2] maint: rename public .h files to .in.h
Date: Mon, 09 Jan 2012 20:43:04 +0100

This fixes the problems with _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
appearing in /usr/include/parted/*.h:

>From ace74051ebdadd2d6d428948af1982543149ae79 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Mon, 9 Jan 2012 19:11:23 +0100
Subject: [PATCH 1/2] parted.h: use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
 in VC'd files

However, we will replace those strings with their expansions when
installing them.
* include/parted/parted.h: Revert part of commit v3.0-83-gd51bfc0.
---
 include/parted/parted.h |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/include/parted/parted.h b/include/parted/parted.h
index dff6dca..fbcb9aa 100644
--- a/include/parted/parted.h
+++ b/include/parted/parted.h
@@ -43,10 +43,7 @@ extern "C" {
 #include <stdlib.h>
 #include <string.h>

-extern const char *ped_get_version ()
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-  __attribute ((__const__));
-#endif
+extern const char *ped_get_version () _GL_ATTRIBUTE_CONST;

 extern void* ped_malloc (size_t size);
 extern void* ped_calloc (size_t size);
--
1.7.9.rc0.2.g4b783


>From e977fafd31d61a6fca60e20b86f536048fdaa68e Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Mon, 9 Jan 2012 19:42:49 +0100
Subject: [PATCH 2/2] maint: rename public .h files to .in.h

Generate .h files from .in.h files, so that we can continue
to use _GL_ATTRIBUTE_PURE and _GL_ATTRIBUTE_CONST in the primary
sources, without including them in publicly-installed files.
Each generated (and later installed) header file gets expansions
of those macros.
* include/parted/Makefile.am: New rules.
* .gitignore: Ignore the generated files.
* Makefile.am (SUBDIRS): Reorder so we build in include/ before
libparted, i.e., so that we generate the .h files we'll need.
---
 .gitignore                                       |   15 +++++++++
 Makefile.am                                      |    2 +-
 include/parted/Makefile.am                       |   37 ++++++++++++++++++++-
 include/parted/{constraint.h => constraint.in.h} |    0
 include/parted/{crc32.h => crc32.in.h}           |    0
 include/parted/{debug.h => debug.in.h}           |    0
 include/parted/{device.h => device.in.h}         |    0
 include/parted/{disk.h => disk.in.h}             |    0
 include/parted/{endian.h => endian.in.h}         |    0
 include/parted/{exception.h => exception.in.h}   |    0
 include/parted/{fdasd.h => fdasd.in.h}           |    0
 include/parted/{filesys.h => filesys.in.h}       |    0
 include/parted/{geom.h => geom.in.h}             |    0
 include/parted/{natmath.h => natmath.in.h}       |    0
 include/parted/{parted.h => parted.in.h}         |    0
 include/parted/{timer.h => timer.in.h}           |    0
 include/parted/{unit.h => unit.in.h}             |    0
 include/parted/{vtoc.h => vtoc.in.h}             |    0
 18 files changed, 51 insertions(+), 3 deletions(-)
 rename include/parted/{constraint.h => constraint.in.h} (100%)
 rename include/parted/{crc32.h => crc32.in.h} (100%)
 rename include/parted/{debug.h => debug.in.h} (100%)
 rename include/parted/{device.h => device.in.h} (100%)
 rename include/parted/{disk.h => disk.in.h} (100%)
 rename include/parted/{endian.h => endian.in.h} (100%)
 rename include/parted/{exception.h => exception.in.h} (100%)
 rename include/parted/{fdasd.h => fdasd.in.h} (100%)
 rename include/parted/{filesys.h => filesys.in.h} (100%)
 rename include/parted/{geom.h => geom.in.h} (100%)
 rename include/parted/{natmath.h => natmath.in.h} (100%)
 rename include/parted/{parted.h => parted.in.h} (100%)
 rename include/parted/{timer.h => timer.in.h} (100%)
 rename include/parted/{unit.h => unit.in.h} (100%)
 rename include/parted/{vtoc.h => vtoc.in.h} (100%)

diff --git a/.gitignore b/.gitignore
index da8d7af..690bbbf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,21 @@
 .tarball-version
 .version
 /ABOUT-NLS
+/include/parted/constraint.h
+/include/parted/crc32.h
+/include/parted/debug.h
+/include/parted/device.h
+/include/parted/disk.h
+/include/parted/endian.h
+/include/parted/exception.h
+/include/parted/fdasd.h
+/include/parted/filesys.h
+/include/parted/geom.h
+/include/parted/natmath.h
+/include/parted/parted.h
+/include/parted/timer.h
+/include/parted/unit.h
+/include/parted/vtoc.h
 ABOUT-NLS
 ChangeLog
 GNUmakefile
diff --git a/Makefile.am b/Makefile.am
index ae252bd..5e52a42 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
 ACLOCAL_AMFLAGS = -I m4
-SUBDIRS = po lib libparted parted partprobe include doc debug tests
+SUBDIRS = po lib include libparted parted partprobe doc debug tests

 EXTRA_DIST =                           \
   .version                             \
diff --git a/include/parted/Makefile.am b/include/parted/Makefile.am
index 022373f..a5d2687 100644
--- a/include/parted/Makefile.am
+++ b/include/parted/Makefile.am
@@ -4,8 +4,7 @@ else
 S390_HDRS =
 endif

-partedincludedir      =        $(includedir)/parted
-
+partedincludedir = $(includedir)/parted
 partedinclude_HEADERS = constraint.h   \
                        debug.h         \
                        device.h        \
@@ -22,4 +21,38 @@ noinst_HEADERS             = crc32.h         \
                        endian.h        \
                        $(S390_HDRS)

+BUILT_SOURCES = \
+  $(partedinclude_HEADERS)     \
+  $(noinst_HEADERS)            \
+  fdasd.h                      \
+  vtoc.h
+
+EXTRA_DIST = $(BUILT_SOURCES:%.h=%.in.h)
+
+# We use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE internally,
+# but cannot use those in a published header, so replace each of those
+# strings with its expansion.
+# Technically, attribute const was introduced in gcc-2.95 and
+# attribute pure in 2.96, but to keep it simple, we're testing
+# for 2.96 or newer for both.
+
+hash_if = \n\#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)\n
+subst_const_attr = \
+  s/ _GL_ATTRIBUTE_CONST\b/$(hash_if)  __attribute ((__const__))\n\#endif\n/
+subst_pure_attr = \
+  s/ _GL_ATTRIBUTE_PURE\b/$(hash_if)  __attribute ((__pure__))\n\#endif\n/
+
+$(BUILT_SOURCES): Makefile.am
+
+SUFFIXES = .in.h .h
+.in.h.h:
+       $(AM_V_GEN)rm -f $@ address@hidden
+       $(AM_V_at)perl -p \
+           -e '$(subst_const_attr);' \
+           -e '$(subst_pure_attr);' \
+         $< > address@hidden
+       $(AM_V_at)chmod a=r address@hidden
+       $(AM_V_at)mv address@hidden $@
+
 MAINTAINERCLEANFILES = Makefile.in
+MAINTAINERCLEANFILES += $(BUILT_SOURCES)
diff --git a/include/parted/constraint.h b/include/parted/constraint.in.h
similarity index 100%
rename from include/parted/constraint.h
rename to include/parted/constraint.in.h
diff --git a/include/parted/crc32.h b/include/parted/crc32.in.h
similarity index 100%
rename from include/parted/crc32.h
rename to include/parted/crc32.in.h
diff --git a/include/parted/debug.h b/include/parted/debug.in.h
similarity index 100%
rename from include/parted/debug.h
rename to include/parted/debug.in.h
diff --git a/include/parted/device.h b/include/parted/device.in.h
similarity index 100%
rename from include/parted/device.h
rename to include/parted/device.in.h
diff --git a/include/parted/disk.h b/include/parted/disk.in.h
similarity index 100%
rename from include/parted/disk.h
rename to include/parted/disk.in.h
diff --git a/include/parted/endian.h b/include/parted/endian.in.h
similarity index 100%
rename from include/parted/endian.h
rename to include/parted/endian.in.h
diff --git a/include/parted/exception.h b/include/parted/exception.in.h
similarity index 100%
rename from include/parted/exception.h
rename to include/parted/exception.in.h
diff --git a/include/parted/fdasd.h b/include/parted/fdasd.in.h
similarity index 100%
rename from include/parted/fdasd.h
rename to include/parted/fdasd.in.h
diff --git a/include/parted/filesys.h b/include/parted/filesys.in.h
similarity index 100%
rename from include/parted/filesys.h
rename to include/parted/filesys.in.h
diff --git a/include/parted/geom.h b/include/parted/geom.in.h
similarity index 100%
rename from include/parted/geom.h
rename to include/parted/geom.in.h
diff --git a/include/parted/natmath.h b/include/parted/natmath.in.h
similarity index 100%
rename from include/parted/natmath.h
rename to include/parted/natmath.in.h
diff --git a/include/parted/parted.h b/include/parted/parted.in.h
similarity index 100%
rename from include/parted/parted.h
rename to include/parted/parted.in.h
diff --git a/include/parted/timer.h b/include/parted/timer.in.h
similarity index 100%
rename from include/parted/timer.h
rename to include/parted/timer.in.h
diff --git a/include/parted/unit.h b/include/parted/unit.in.h
similarity index 100%
rename from include/parted/unit.h
rename to include/parted/unit.in.h
diff --git a/include/parted/vtoc.h b/include/parted/vtoc.in.h
similarity index 100%
rename from include/parted/vtoc.h
rename to include/parted/vtoc.in.h
--
1.7.9.rc0.2.g4b783



reply via email to

[Prev in Thread] Current Thread [Next in Thread]