diff options
author | Julian Andres Klode <jak@debian.org> | 2016-08-09 17:40:01 +0200 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2016-08-10 16:17:19 +0200 |
commit | c85c4bed0a4b32ee2dcbd86ea819e39f3d8beb84 (patch) | |
tree | be083f5da7110e52bb540bd05722a829798d1116 | |
parent | fa1b5d86bf5ba20047774014b422e7c30ee13a9c (diff) | |
download | apt-c85c4bed0a4b32ee2dcbd86ea819e39f3d8beb84.tar.gz |
Get rid of the old buildsystem
Bye, bye, old friend.
43 files changed, 0 insertions, 2732 deletions
diff --git a/COMPILING b/COMPILING deleted file mode 100644 index 93e628037..000000000 --- a/COMPILING +++ /dev/null @@ -1,84 +0,0 @@ -General Information -~~~~~~~~~~~~~~~~~~~ -To compile this you need a couple things - - A working POSIX system with working POSIX gcc, g++, make (GNU), - ar, sh, awk and sed in the path - - GNU Make 3.74 or so, -- normal UNIX make will NOT work - * Note 3.77 is broken. - - A working ANSI C++ compiler, this is not g++ 2.7.* - g++ 2.8 works OK and newer egcs work well also. Nobody has tried it - on other compilers :< You will need a properly working STL as well. - - A C library with the usual POSIX functions and a BSD socket layer. - If your OS conforms to the Single Unix Spec then you are fine: - http://www.opengroup.org/onlinepubs/7908799/index.html - - Refer to the Build-Depends information in debian/control for - additional requirements (some of which are Debian-specific) - -** NOTICE ** -The C++ global constructors do not link correctly when using non-shared -libraries. This is probably the correct behavior of the linker, but I have -not yet had time to devise a work around for it. The correct thing to -do is add a reference to debSystem in apt-pkg/init.cc, -assert(&debSystem == 0) would be fine for instance. - -Guidelines -~~~~~~~~~~ -I am not interested in making 'ultra portable code'. I will accept patches -to make the code that already exists conform more to SUS or POSIX, but -I don't really care if your not-SUS OS doesn't work. It is simply too -much work to maintain patches for dysfunctional OSs. I highly suggest you -contact your vendor and express interest in a conforming C library. - -That said, there are lots of finicky problems that must be dealt with even -between the supported OS's. Primarily the path I choose to take is to put -a shim header file in build/include that transparently adds the required -functionality. Patches to make autoconf detect these cases and generate the -required shims are OK. - -Current shims: - * sys/statvfs.h to convert from BSD/old-glibc statfs to SUS statvfs - * rfc2553 hostname resolution (methods/rfc*), shims to normal gethostbyname. - The more adventurous could steal the KAME IPv6 enabled resolvers for those - OS's with IPv6 support but no rfc2553 (why?) - * define _XOPEN_EXTENDED_SOURCE to bring in h_errno on HP-UX - * socklen_t shim in netdb.h if the OS does not have socklen_t - -The only completely non-shimmed OS is Linux with glibc2.1, glibc2.0 requires -the first three shims. - -Platform Notes -~~~~~~~~~~~~~~ -Debian GNU Linux 2.1 'slink' -Debian GNU Linux 'potato' -Debian GNU Linux 'woody' - * All Archs - - Works flawlessly - - You will want to have docbook-xml and docbook2man installed to get - best results. - - No IPv6 Support in glibc's < 2.1. - -Sun Solaris - SunOS cab101 5.7 Generic_106541-04 sun4u sparc - SunOS csu201 5.8 Generic_108528-04 sun4u sparc - - Works fine - - Note, no IPv6 Support, OS lacks RFC 2553 hostname resolution - -OpenBSD - OpenBSD gsb086 2.5 CMPUT#0 i386 unknown - OpenBSD csu101 2.7 CMPUT#1 i386 unknown - - OS needs 'ranlib' to generate the symbol table after 'ar'.. (not using - GNU ar with the gnu tool chain :<) - - '2.5' does not have RFC 2553 hostname resolution, but '2.7' does - - Testing on '2.7' suggests the OS has a bug in its handling of - ftruncate on files that have been written via mmap. It fills the page - that crosses the truncation boundary with 0's. - -HP-UX - HP-UX nyquist B.10.20 C 9000/780 2016574337 32-user license - - Evil OS, does not conform very well to SUS - 1) snprintf exists but is not prototyped, ignore spurious warnings - 2) No socklen_t - 3) Requires -D_XOPEN_SOURCE_EXTENDED for h_errno - configure should fix the last two (see above) - - Note, no IPv6 Support, OS lacks RFC 2553 hostname resolution - diff --git a/Makefile b/Makefile deleted file mode 100644 index 7680f0842..000000000 --- a/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -# -*- make -*- - -# This is the top level make file for APT, it recurses to each lower -# level make file and runs it with the proper target -ifndef NOISY -.SILENT: -endif - -.PHONY: default -default: startup all - -.PHONY: fast headers library clean veryclean all binary program doc test update-po -all headers library clean veryclean binary program doc manpages docbook test update-po startup dirs: - $(MAKE) -C vendor $@ - $(MAKE) -C apt-pkg $@ - $(MAKE) -C apt-inst $@ - $(MAKE) -C apt-private $@ - $(MAKE) -C methods $@ - $(MAKE) -C cmdline $@ - $(MAKE) -C ftparchive $@ - $(MAKE) -C dselect $@ - $(MAKE) -C doc $@ - $(MAKE) -C po $@ - # FIXME: -C test has issue swith parallel builds, investigate! - -$(MAKE) -C test $@ - -fast: - $(MAKE) -C vendor all - $(MAKE) -C apt-pkg all - $(MAKE) -C apt-inst all - $(MAKE) -C apt-private all - $(MAKE) -C methods all - $(MAKE) -C cmdline all - $(MAKE) -C ftparchive all - $(MAKE) -C test all - -all headers library clean veryclean binary program doc manpages docbook test update-po: startup dirs - -dirs: startup - -# Some very common aliases -.PHONY: maintainer-clean dist-clean distclean pristine sanity -maintainer-clean dist-clean distclean pristine sanity: veryclean -veryclean: clean - -# The startup target builds the necessary configure scripts. It should -# be used after a CVS checkout. -CONVERTED=environment.mak include/config.h include/apti18n.h build/doc/Doxyfile makefile -include buildlib/configure.mak -$(BUILDDIR)/include/config.h: buildlib/config.h.in -$(BUILDDIR)/include/apti18n.h: buildlib/apti18n.h.in -$(BUILDDIR)/environment.mak: buildlib/environment.mak.in -$(BUILDDIR)/makefile: buildlib/makefile.in diff --git a/README.make b/README.make deleted file mode 100644 index db5f36e94..000000000 --- a/README.make +++ /dev/null @@ -1,112 +0,0 @@ -The Make System -~~~ ~~~~ ~~~~~~ -To compile this program you require GNU Make. In fact you probably need -GNU Make 3.76.1 or newer. The makefiles contained make use of many -GNU Make specific features and will not run on other makes. - -The make system has a number of interesting properties that are not found -in other systems such as automake or the GNU makefile standards. In -general some semblance of expectedness is kept so as not to be too -surprising. Basically the following will work as expected: - - ./configure - make - or - cd build - ../configure - make - -There are a number of other things that are possible that may make software -development and software packaging simpler. The first of these is the -environment.mak file. When configure is run it creates an environment.mak -file in the build directory. This contains -all- configurable parameters -for all of the make files in all of the subdirectories. Changing one -of these parameters will have an immediate effect. The use of makefile.in -and configure substitutions across build makefiles is not used at all. - -Furthermore, the make system runs with a current directory equal to the -source directory regardless of the destination directory. This means -#include "" and #include <> work as expected and more importantly -running 'make' in the source directory will work as expected. The -environment variable or make parameter 'BUILD' sets the build directory. -It may be an absolute path or a path relative to the top level directory. -By default build-arch/ then build/ will be used with a fall back to ./ This -means you can get all the advantages of a build directory without having to -cd into it to edit your source code! - -The make system also performs dependency generation on the fly as the -compiler runs. This is extremely fast and accurate. There is however -one failure condition that occurs when a header file is erased. In -this case you should run make clean to purge the .o and .d files to -rebuild. - -The final significant deviation from normal make practices is -in how the build directory is managed. It is not nearly a mirror of -the source directory but is logically divided in the following manner - bin/ - methods/ - doc/ - examples/ - include/ - apt-pkg/ - obj/ - apt-pkg/ - cmdline/ - [...] -Only .o and .d files are placed in the obj/ subdirectory. The final compiled -binaries are placed in bin, published headers for inter-component linking -are placed in include/ and documentation is generated into doc/. This means -all runnable programs are within the bin/ directory, a huge benefit for -debugging inter-program relationships. The .so files are also placed in -bin/ for simplicity. - -By default make is put into silent mode. During operation there should be -no shell or compiler messages only status messages from the makefiles, -if any pop up that indicates there may be a problem with your environment. -For debugging you can disable this by setting NOISY=1, ala - make NOISY=1 - -Using the makefiles -~~~~~ ~~~ ~~~~~~~~~ -The makefiles for the components are really simple. The complexity is hidden -within the buildlib/ directory. Each makefile defines a set of make variables -for the bit it is going to make then includes a makefile fragment from -the buildlib/. This fragment generates the necessary rules based on the -originally defined variables. This process can be repeated as many times as -necessary for as many programs or libraries as are in the directory. - -Many of the make fragments have some useful properties involving sub -directories and other interesting features. They are more completely -described in the fragment code in buildlib. Some tips on writing fragments -are included in buildlib/defaults.mak - -The fragments are NEVER processed by configure, so if you make changes to -them they will have an immediate effect. - -Autoconf -~~~~~~~~ -Straight out of CVS you have to initialize autoconf. This requires -automake (I really don't know why) and autoconf and requires doing - aclocal -I buildlib - autoconf -[Alternatively you can run make startup in the top level build dir] - -Autoconf is configured to do some basic system probes for optional and -required functionality and generate an environment.mak and include/config.h -from it's findings. It will then write a 'makefile' and run make dirs to -create the output directory tree. - -It is not my belief that autoconf should be used to generate substantial -source code markup to escape OS problems. If an OS problem does crop up -it can likely be corrected by installing the correct files into the -build include/ dir and perhaps writing some replacement code and -linking it in. To the fullest extent possible the source code should conform -to standards and not cater to broken systems. - -Autoconf will also write a makefile into the top level of the build dir, -this simply acts as a wrapper to the main top level make in the source tree. -There is one big warning, you can't use both this make file and the -ones in the top level tree. Make is not able to resolve rules that -go to the same file through different paths and this will confuse the -depends mechanism. I recommend always using the makefiles in the -source directory and exporting BUILD. diff --git a/apt-inst/makefile b/apt-inst/makefile deleted file mode 100644 index 5601cd9e6..000000000 --- a/apt-inst/makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=apt-inst - -# Header location -SUBDIRS = contrib deb -HEADER_TARGETDIRS = apt-pkg - -# Bring in the default rules -include ../buildlib/defaults.mak - -# The library name and version (indirectly used from init.h) -include ../buildlib/libversion.mak - -# The library name -LIBRARY=apt-inst -MAJOR=2.0 -MINOR=0 -SLIBS=$(PTHREADLIB) -lapt-pkg -APT_DOMAIN:=libapt-inst$(MAJOR) -LIBRARYDEPENDS=$(LIB)/libapt-pkg.so - -SOURCE = $(sort $(wildcard *.cc */*.cc)) -HEADERS = $(addprefix apt-pkg/,$(notdir $(sort $(wildcard *.h */*.h)))) - -include $(LIBRARY_H) diff --git a/apt-pkg/makefile b/apt-pkg/makefile deleted file mode 100644 index 789d3f2fd..000000000 --- a/apt-pkg/makefile +++ /dev/null @@ -1,37 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=apt-pkg - -# Header location -SUBDIRS = deb edsp contrib -HEADER_TARGETDIRS = apt-pkg - -# Bring in the default rules -include ../buildlib/defaults.mak - -# The library name and version (indirectly used from init.h) -include ../buildlib/libversion.mak - -CPPFLAGS+=-DAPT_PKG_EXPOSE_STRING_VIEW -LIBRARY=apt-pkg -MAJOR=$(LIBAPTPKG_MAJOR) -MINOR=$(LIBAPTPKG_RELEASE) -SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl -lresolv -ifeq ($(HAVE_ZLIB),yes) -SLIBS+= -lz -endif -ifeq ($(HAVE_BZ2),yes) -SLIBS+= -lbz2 -endif -ifeq ($(HAVE_LZMA),yes) -SLIBS+= -llzma -endif -ifeq ($(HAVE_LZ4),yes) -SLIBS+= -llz4 -endif -APT_DOMAIN:=libapt-pkg$(LIBAPTPKG_MAJOR) - -SOURCE = $(sort $(wildcard *.cc */*.cc)) -HEADERS = $(addprefix apt-pkg/,$(notdir $(sort $(wildcard *.h */*.h)))) - -include $(LIBRARY_H) diff --git a/apt-private/makefile b/apt-private/makefile deleted file mode 100644 index 1934db160..000000000 --- a/apt-private/makefile +++ /dev/null @@ -1,21 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=apt-private - -# Header location -HEADER_TARGETDIRS = apt-private - -# Bring in the default rules -include ../buildlib/defaults.mak - -# The library name -LIBRARY=apt-private -MAJOR=0.0 -MINOR=0 -SLIBS=$(PTHREADLIB) -lapt-pkg -CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden - -SOURCE = $(sort $(wildcard *.cc)) -HEADERS = $(addprefix apt-private/,$(sort $(wildcard *.h))) - -include $(LIBRARY_H) diff --git a/buildlib/apti18n.h.in b/buildlib/apti18n.h.in deleted file mode 100644 index 2202c5b19..000000000 --- a/buildlib/apti18n.h.in +++ /dev/null @@ -1,30 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// $Id: apti18n.h.in,v 1.6 2003/01/11 07:18:18 jgg Exp $ -/* Internationalization macros for apt. This header should be included last - in each C file. */ - -// Set by autoconf -#undef USE_NLS - -#ifdef USE_NLS -// apt will use the gettext implementation of the C library -#include <libintl.h> -#include <locale.h> -# ifdef APT_DOMAIN -# define _(x) dgettext(APT_DOMAIN,x) -# define P_(msg,plural,n) dngettext(APT_DOMAIN,msg,plural,n) -# else -# define _(x) gettext(x) -# define P_(msg,plural,n) ngettext(msg,plural,n) -# endif -# define N_(x) x -#else -// apt will not use any gettext -# define setlocale(a, b) -# define textdomain(a) -# define bindtextdomain(a, b) -# define _(x) x -# define P_(msg,plural,n) (n == 1 ? msg : plural) -# define N_(x) x -# define dgettext(d, m) m -#endif diff --git a/buildlib/config.h.in b/buildlib/config.h.in deleted file mode 100644 index 71c05c1cd..000000000 --- a/buildlib/config.h.in +++ /dev/null @@ -1,60 +0,0 @@ -/* Define if your processor stores words with the most significant - byte first (like Motorola and SPARC, unlike Intel and VAX). */ -#undef WORDS_BIGENDIAN - -/* Define if we have the timegm() function */ -#undef HAVE_TIMEGM - -/* Define if we have the zlib library for gzip */ -#undef HAVE_ZLIB - -/* Define if we have the bz2 library for bzip2 */ -#undef HAVE_BZ2 - -/* Define if we have the lzma library for lzma/xz */ -#undef HAVE_LZMA - -/* Define if we have the lz4 library for lz4 */ -#undef HAVE_LZ4 - -/* These two are used by the statvfs shim for glibc2.0 and bsd */ -/* Define if we have sys/vfs.h */ -#undef HAVE_VFS_H -#undef HAVE_STRUCT_STATFS_F_TYPE - -/* Define if we have sys/mount.h */ -#undef HAVE_MOUNT_H - -/* Define if we have enabled pthread support */ -#undef HAVE_PTHREAD - -/* If there is no socklen_t, define this for the netdb shim */ -#undef NEED_SOCKLEN_T_DEFINE - -/* Check for getresuid() function and similar ones */ -#undef HAVE_GETRESUID -#undef HAVE_GETRESGID -#undef HAVE_SETRESUID -#undef HAVE_SETRESGID - -/* Define to the size of the filesize containing structures */ -#undef _FILE_OFFSET_BITS - -/* Define the arch name string */ -#undef COMMON_ARCH - -/* The package name string */ -#undef PACKAGE - -/* The version number string */ -#undef PACKAGE_VERSION - -/* The mail address to reach upstream */ -#undef PACKAGE_MAIL - -#define APT_8_CLEANER_HEADERS -#define APT_9_CLEANER_HEADERS -#define APT_10_CLEANER_HEADERS - -/* unrolling is faster combined with an optimizing compiler */ -#define SHA2_UNROLL_TRANSFORM diff --git a/buildlib/configure.mak b/buildlib/configure.mak deleted file mode 100644 index e1a511544..000000000 --- a/buildlib/configure.mak +++ /dev/null @@ -1,62 +0,0 @@ -# -*- make -*- - -# This make fragment is included by the toplevel make to handle configure -# and setup. It defines a target called startup that when run will init -# the build directory, generate configure from configure.ac, create aclocal -# and has rules to run config.status should one of the .in files change. - -# Input -# BUILDDIR - The build directory -# CONVERTED - List of files output by configure $(BUILD) is prepended -# The caller must provide depends for these files -# It would be a fairly good idea to run this after a cvs checkout. -BUILDDIR=build - -.PHONY: startup missing-config-files -startup: $(BUILDDIR)/configure-stamp $(addprefix $(BUILDDIR)/,$(CONVERTED)) - -# use the files provided from the system instead of carry around -# and use (most of the time outdated) copycats -ifeq (file-okay,$(shell test -r buildlib/config.sub && echo 'file-okay')) -buildlib/config.sub: -else - ifeq (file-okay,$(shell test -r /usr/share/misc/config.sub && echo 'file-okay')) -buildlib/config.sub: - ln -sf /usr/share/misc/config.sub buildlib/config.sub - else -buildlib/config.sub: missing-config-files - endif -endif - -ifeq (file-okay,$(shell test -r buildlib/config.guess && echo 'file-okay')) -buildlib/config.guess: -else - ifeq (file-okay,$(shell test -r /usr/share/misc/config.guess && echo 'file-okay')) -buildlib/config.guess: - ln -sf /usr/share/misc/config.guess buildlib/config.guess - else -buildlib/config.guess: missing-config-files - endif -endif - -missing-config-files: - @echo "APT needs 'config.guess' and 'config.sub' in buildlib/ for configuration." - @echo "On Debian systems these are available in the 'autotools-dev' package." - @echo - @echo "The latest versions can be acquired from the upstream git repository:" - @echo "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" - @echo "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" - exit 100 - -configure: aclocal.m4 configure.ac - autoconf - -aclocal.m4: $(wildcard buildlib/*.m4) - aclocal -I buildlib - -$(BUILDDIR)/configure-stamp: configure buildlib/config.guess buildlib/config.sub - /usr/bin/test -e '$(BUILDDIR)' || mkdir '$(BUILDDIR)' - (HERE="`pwd`"; cd '$(BUILDDIR)' && "$$HERE/configure") - touch '$(BUILDDIR)/configure-stamp' - -$(addprefix $(BUILDDIR)/,$(CONVERTED)): $(BUILDDIR)/configure-stamp diff --git a/buildlib/copy.mak b/buildlib/copy.mak deleted file mode 100644 index 3ae11a7eb..000000000 --- a/buildlib/copy.mak +++ /dev/null @@ -1,31 +0,0 @@ -# -*- make -*- - -# This installs arbitrary files into a directory - -# Input -# $(SOURCE) - The documents to use -# $(TO) - The directory to put them in -# $(TARGET) - The global target to add the local target as a dependency -# to. -# All output is writtin to files in the build/$(TO) directory - -# See defaults.mak for information about LOCAL - -# Some local definitions -LOCAL := copy-$(firstword $(SOURCE)) -$(LOCAL)-LIST := $(addprefix $(TO)/,$(SOURCE)) - -# Install generation hooks -$(TARGET): $($(LOCAL)-LIST) -veryclean: veryclean/$(LOCAL) - -MKDIRS += $(dir $($(LOCAL)-LIST)) - -$($(LOCAL)-LIST) : $(TO)/% : % - echo Installing $< to $(@D) - cp $< $(@D) - -# Clean rule -.PHONY: veryclean/$(LOCAL) -veryclean/$(LOCAL): - -rm -rf $($(@F)-LIST) diff --git a/buildlib/defaults.mak b/buildlib/defaults.mak deleted file mode 100644 index 783cc11b0..000000000 --- a/buildlib/defaults.mak +++ /dev/null @@ -1,185 +0,0 @@ -# -*- make -*- - -# This file configures the default environment for the make system -# The way it works is fairly simple, each module is defined in it's -# own *.mak file. It expects a set of variables to be set to values -# for it to operate as expected. When included the module generates -# the requested rules based on the contents of its control variables. - -# This works out very well and allows a good degree of flexibility. -# To accommodate some of the features we introduce the concept of -# local variables. To do this we use the 'Computed Names' feature of -# gmake. Each module declares a LOCAL scope and access it with, -# $($(LOCAL)-VAR) -# This works very well but it is important to remember that within -# a rule the LOCAL var is unavailable, it will have to be constructed -# from the information in the rule invocation. For stock rules like -# clean this is simple, we use a local clean rule called clean/$(LOCAL) -# and then within the rule $(@F) gets back $(LOCAL)! Other rules will -# have to use some other mechanism (filter perhaps?) The reason such -# lengths are used is so that each directory can contain several 'instances' -# of any given module. I notice that the very latest gmake has the concept -# of local variables for rules. It is possible this feature in conjunction -# with the generated names will provide a very powerful solution indeed! - -# A build directory is used by default, all generated items get put into -# there. However unlike automake this is not done with a VPATH build -# (vpath builds break the distinction between #include "" and #include <>) -# but by explicitly setting the BUILD variable. Make is invoked from -# within the source itself which is much more compatible with compilation -# environments. -ifndef NOISY -.SILENT: -endif - -# Search for the build directory -ifdef BUILD -BUILD_POSSIBLE := $(BUILD) $(BASE)/$(BUILD) -else -BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname -m) $(BASE)/build -endif - -BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*)) - -ifeq ($(words $(BUILDX)),0) - -# Check for a busted wildcard function. We use this function in several -# places, it must work. -ifeq ($(words $(wildcard *)),0) -error-all/environment.mak: - echo You have a broken version of GNU Make - upgrade. - error-out-and-die -else -error-all/environment.mak: - echo Can not find the build directory in $(BUILD_POSSIBLE) -- use BUILD= - error-out-and-die -endif - -# Force include below to come to the error target -BUILDX := error-all -else -BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX)))) -endif - -override BUILD := $(BUILDX) - -# Base definitions -INCLUDE := $(BUILD)/include -BIN := $(BUILD)/bin -LIB := $(BIN) -OBJ := $(BUILD)/obj/$(SUBDIR) -DEP := $(OBJ) -DOC := $(BUILD)/docs -PO := $(BUILD)/po -LOCALE := $(BUILD)/locale -PO_DOMAINS := $(BUILD)/po/domains - -# Module types -LIBRARY_H = $(BASE)/buildlib/library.mak -DOCBOOK_H = $(BASE)/buildlib/docbook.mak -MANPAGE_H = $(BASE)/buildlib/manpage.mak -PROGRAM_H = $(BASE)/buildlib/program.mak -PYTHON_H = $(BASE)/buildlib/python.mak -COPY_H = $(BASE)/buildlib/copy.mak -PO4A_MANPAGE_H = $(BASE)/buildlib/po4a_manpage.mak -FAIL_H = $(BASE)/buildlib/fail.mak -PODOMAIN_H = $(BASE)/buildlib/podomain.mak - -include $(BUILD)/environment.mak - -ifdef STATICLIBS -LIBRARY_H += $(BASE)/buildlib/staticlibrary.mak -endif - -ifdef ONLYSTATICLIBS -LIBRARY_H = $(BASE)/buildlib/staticlibrary.mak -endif - -# Source location control -# SUBDIRS specifies sub components of the module that -# may be located in subdirectories of the source dir. -# This should be declared before including this file -SUBDIRS+= - -# Header file control. -# TARGETDIRS indicates all of the locations that public headers -# will be published to. -# This should be declared before including this file -HEADER_TARGETDIRS+= - -# Options -CPPFLAGS+= -I$(INCLUDE) -LDFLAGS+= -L$(LIB) - -# Directors to create -MKDIRS := $(BIN) - -# Phony rules. Other things hook these by appending to the dependency -# list -.PHONY: headers library clean veryclean all binary program doc dirs -.PHONY: maintainer-clean dist-clean distclean pristine sanity -all: dirs binary doc -binary: library program -maintainer-clean dist-clean distclean pristine sanity: veryclean -startup headers library clean veryclean program test update-po manpages docbook: - -veryclean: - echo Very Clean done for $(SUBDIR) -clean: - echo Clean done for $(SUBDIR) -dirs: - mkdir -p $(patsubst %/,%,$(sort $(MKDIRS))) - -# Header file control. We want all published interface headers to go -# into the build directory from their source dirs. We setup some -# search paths here -vpath %.h $(SUBDIRS) -$(INCLUDE)/%.h $(addprefix $(INCLUDE)/,$(addsuffix /%.h,$(HEADER_TARGETDIRS))) : %.h - cp $< $@ - -# Dependency generation. We want to generate a .d file using gnu cpp. -# For GNU systems the compiler can spit out a .d file while it is compiling, -# this is specified with the INLINEDEPFLAG. Other systems might have a -# makedep program that can be called after compiling, that's illustrated -# by the DEPFLAG case. -# Compile rules are expected to call this macro after calling the compiler -ifdef GCC3DEP -DFILE = $(DEP)/$(basename $(@F)).d -else -DFILE = $(basename $(@F)).d -endif -ifdef INLINEDEPFLAG - define DoDep - sed -e "1s/.*:/$(subst /,\\/,$@):/" $(DFILE) > $(DEP)/$(@F).d - #sed -e "1s/.*:/$(subst /,\\/,$@):/" $(DEP)/$(basename $(@F)).d > $(DEP)/$(@F).d - -rm -f $(basename $(@F)).d - endef -else - ifdef DEPFLAG - define DoDep - $(CXX) $(DEPFLAG) $(CPPFLAGS) -o $@ $< - sed -e "1s/.*:/$(subst /,\\/,$@):/" $(basename $(@F)).d > $(DEP)/$(@F).d - -rm -f $(basename $(@F)).d - endef - else - define DoDep - endef - endif -endif - -# Automatic -j support -ifeq ($(NUM_PROCS),1) - PARALLEL_RUN=no -endif - -ifndef PARALLEL_RUN - PARALLEL_RUN=yes - export PARALLEL_RUN - # handle recursion - ifneq ($(NUM_PROCS),) - MAKEFLAGS += -j $(NUM_PROCS) - endif -endif - -# This makes sorting predictable -export LC_COLLATE=C.UTF-8 diff --git a/buildlib/docbook.mak b/buildlib/docbook.mak deleted file mode 100644 index 6aa3ca0d2..000000000 --- a/buildlib/docbook.mak +++ /dev/null @@ -1,75 +0,0 @@ -# -*- make -*- - -# This processes DocBook XML to produce html and plain text output - -# Input -# $(SOURCE) - The documents to use - -# All output is written to files in the build doc directory - -# See defaults.mak for information about LOCAL - -# Some local definitions -LOCAL := docbook-$(firstword $(SOURCE)) -$(LOCAL)-HTML := $(addsuffix .html,$(addprefix $(DOC)/,$(basename $(SOURCE)))) -$(LOCAL)-TEXT := $(addsuffix .text,$(addprefix $(DOC)/,$(basename $(SOURCE)))) -INCLUDES = apt.ent apt-verbatim.ent apt-vendor.ent - -docbook: - - -#--------- - -# Rules to build HTML documentations -ifdef XSLTPROC - -DOCBOOK_HTML_STYLESHEET := docbook-html-style.xsl - -# Install generation hooks -docbook: $($(LOCAL)-HTML) -veryclean: veryclean/html/$(LOCAL) - -vpath %.dbk $(SUBDIRS) -vpath $(DOCBOOK_HTML_STYLESHEET) $(SUBDIRS) -$(DOC)/%.html: %.dbk $(DOCBOOK_HTML_STYLESHEET) $(INCLUDES) - echo Creating html for $< to $@ - -rm -rf $@ - mkdir -p $@ - $(DOCBOOK) \ - --stringparam base.dir $@/ \ - --stringparam l10n.gentext.default.language $(LC) \ - $(<D)/$(DOCBOOK_HTML_STYLESHEET) $< || exit 199 - -# Clean rule -.PHONY: veryclean/html/$(LOCAL) -veryclean/html/$(LOCAL): - -rm -rf $($(@F)-HTML) - -endif - -#--------- - -# Rules to build Text documentations -ifdef XSLTPROC - -DOCBOOK_TEXT_STYLESHEET := docbook-text-style.xsl - -# Install generation hooks -docbook: $($(LOCAL)-TEXT) -veryclean: veryclean/text/$(LOCAL) - -vpath %.dbk $(SUBDIRS) -vpath $(DOCBOOK_TEXT_STYLESHEET) $(SUBDIRS) -$(DOC)/%.text: %.dbk $(DOCBOOK_TEXT_STYLESHEET) $(INCLUDES) - echo Creating text for $< to $@ - $(DOCBOOK) \ - --stringparam l10n.gentext.default.language $(LC) \ - $(<D)/$(DOCBOOK_TEXT_STYLESHEET) $< | \ - LC_ALL=C.UTF-8 $(DOCBOOK2TEXT) > $@ || exit 198 - -# Clean rule -.PHONY: veryclean/text/$(LOCAL) -veryclean/text/$(LOCAL): - -rm -rf $($(@F)-TEXT) - -endif diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in deleted file mode 100644 index 2ac3d6847..000000000 --- a/buildlib/environment.mak.in +++ /dev/null @@ -1,85 +0,0 @@ -# This file contains everything that autoconf guessed for your system. -# if you want you can edit it, just don't re-run configure. - -PACKAGE = @PACKAGE@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PACKAGE_MAIL = @PACKAGE_MAIL@ - -# C++ compiler options -CC = @CC@ -CPPFLAGS+= @CPPFLAGS@ @DEFS@ -D_REENTRANT -D_FORTIFY_SOURCE=2 -CXX = @CXX@ -CXXSTD = -std=c++11 -CXXFLAGS+= @CXXFLAGS@ -Wall -Wextra -CXXFLAGS+= -Wcast-align -Wlogical-op -Wredundant-decls -Wmissing-declarations -Wunsafe-loop-optimizations -CXXFLAGS+= -Wctor-dtor-privacy -Wdisabled-optimization -Winit-self -Wmissing-include-dirs -Wnoexcept -Wsign-promo -Wundef -# suggests methods which already have such an attribute -#CXXFLAGS+= -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn -# sanitize options to be enabled for testing -#CXXFLAGS+= -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr -# a bit too pedantic to be run by default -#CXXFLAGS+= -Wpedantic -Wno-long-long -Wno-vla -Wno-variadic-macros -# hide inlines -CXXFLAGS+= -fvisibility-inlines-hidden -NUM_PROCS = @NUM_PROCS@ - -# Linker stuff -PICFLAGS+= -fPIC -DPIC -LFLAGS+= @LDFLAGS@ -LEFLAGS+= -SOCKETLIBS:= @SOCKETLIBS@ -AR:=@AR@ -RANLIB:=@RANLIB@ - -# Dep generation - this only works for gnu stuff -GCC3DEP = @GCC3DEP@ -INLINEDEPFLAG = -MD - -DOXYGEN = @DOXYGEN@ -W3M = @W3M@ - -# xsltproc for the man pages and documentation -XSLTPROC := @XSLTPROC@ - -# DocBook XML -DOCBOOK = $(XSLTPROC) --nonet --novalid --xinclude -DOCBOOK2TEXT = $(W3M) -o display_charset=UTF-8 -no-graph -T text/html \ - -cols 78 -dump - -# po4a for the man pages -PO4A := @PO4A@ - -# Gettext settings -GMSGFMT = @GMSGFMT@ -XGETTEXT = @XGETTEXT@ -MSGCOMM:=$(dir $(XGETTEXT))/msgcomm -MSGMERGE:=$(dir $(XGETTEXT))/msgmerge -BASH = @BASH@ - -# Various library checks -PTHREADLIB = @PTHREADLIB@ -PYTHONLIB = @PYTHONLIB@ -PYTHONVER = @PYTHONVER@ -PYTHONPREFIX = @PYTHONPREFIX@ -PYTHONEXECPREFIX = @PYTHONEXECPREFIX@ -PYTHONINCLUDE = @PYTHONINCLUDE@ -BDBLIB = @BDBLIB@ -INTLLIBS = @INTLLIBS@ - -# Shim Headerfile control -HAVE_STATVFS = @HAVE_STATVFS@ -HAVE_ZLIB = @HAVE_ZLIB@ -HAVE_BZ2 = @HAVE_BZ2@ -HAVE_LZMA = @HAVE_LZMA@ -HAVE_LZ4 = @HAVE_LZ4@ -NEED_SOCKLEN_T_DEFINE = @NEED_SOCKLEN_T_DEFINE@ - -# Shared library things -HOST_OS = @host_os@ -ifneq ($(words $(filter gnu% linux-gnu% kfreebsd-gnu% %-gnu,$(HOST_OS))),0) - SONAME_MAGIC=-Wl,-soname -Wl, - LFLAGS_SO= -else - # Do not know how to create shared libraries here. - ONLYSTATICLIBS = yes -endif diff --git a/buildlib/fail.mak b/buildlib/fail.mak deleted file mode 100644 index fc187766d..000000000 --- a/buildlib/fail.mak +++ /dev/null @@ -1,20 +0,0 @@ -# -*- make -*- - -# This prints a failure message but does not abort the make - -# Input -# $(MESSAGE) - The message to show -# $(PROGRAM) - The program/library/whatever. - -# See defaults.mak for information about LOCAL - -LOCAL := $(PROGRAM) -$(LOCAL)-MSG := $(MESSAGE) - -# Install hooks -program: $(PROGRAM) - -.PHONY: $(PROGRAM) -$(PROGRAM) : - echo $($@-MSG) - diff --git a/buildlib/install-sh b/buildlib/install-sh deleted file mode 100644 index ebc66913e..000000000 --- a/buildlib/install-sh +++ /dev/null @@ -1,250 +0,0 @@ -#! /bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/buildlib/library.mak b/buildlib/library.mak deleted file mode 100644 index 7b12384c4..000000000 --- a/buildlib/library.mak +++ /dev/null @@ -1,77 +0,0 @@ -# -*- make -*- - -# This creates a shared library. - -# Input -# $(SOURCE) - The source code to use -# $(HEADERS) - Exported header files and private header files -# $(LIBRARY) - The name of the library without lib or .so -# $(MAJOR) - The major version number of this library -# $(MINOR) - The minor version number of this library -# $(APT_DOMAIN) - The text domain for this library - -# All output is writtin to .opic files in the build directory to -# signify the PIC output. - -# See defaults.mak for information about LOCAL - -# Some local definitions -LOCAL := lib$(LIBRARY).so.$(MAJOR).$(MINOR) -$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .opic,$(notdir $(basename $(SOURCE))))) -$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .opic.d,$(notdir $(basename $(SOURCE))))) -$(LOCAL)-HEADERS := $(addprefix $(INCLUDE)/,$(HEADERS)) -$(LOCAL)-SONAME := lib$(LIBRARY).so.$(MAJOR) -$(LOCAL)-VERSIONSCRIPT := $(LIB)/lib$(LIBRARY)-$(MAJOR)-$(MINOR).symver -$(LOCAL)-SLIBS := $(SLIBS) -$(LOCAL)-LIBRARY := $(LIBRARY) - -TYPE = src -include $(PODOMAIN_H) - -# Install the command hooks -headers: $($(LOCAL)-HEADERS) -library: $(LIB)/lib$(LIBRARY).so $(LIB)/lib$(LIBRARY).so.$(MAJOR) -clean: clean/$(LOCAL) -veryclean: veryclean/$(LOCAL) - -# Make Directories -MKDIRS += $(OBJ) $(DEP) $(LIB) $(dir $($(LOCAL)-HEADERS)) - -# The clean rules -.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) -clean/$(LOCAL): - -rm -f $($(@F)-OBJS) $($(@F)-DEP) $($(@F)-VERSIONSCRIPT) -veryclean/$(LOCAL): clean/$(LOCAL) - -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY)*.so* - -# Build rules for the two symlinks -.PHONY: $(LIB)/lib$(LIBRARY).so.$(MAJOR) $(LIB)/lib$(LIBRARY).so -$(LIB)/lib$(LIBRARY).so.$(MAJOR): $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR) - ln -sf $(<F) $@ -$(LIB)/lib$(LIBRARY).so: $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR) - ln -sf $(<F) $@ - -$($(LOCAL)-VERSIONSCRIPT): - echo '$(shell echo '$(LIBRARY)' | tr -d '-' | tr 'a-z' 'A-Z')_$(MAJOR) { global: *; };' > $@ - -# The binary build rule -$(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) $(LIBRARYDEPENDS) $($(LOCAL)-VERSIONSCRIPT) - -rm -f $(LIB)/lib$($(@F)-LIBRARY)*.so* 2> /dev/null - echo Building shared library $@ - $(CXX) $(CXXSTD) $(CXXFLAGS) $(LDFLAGS) -Wl,--version-script=$($(@F)-VERSIONSCRIPT) $(PICFLAGS) $(LFLAGS) $(LFLAGS_SO)\ - -o $@ $(SONAME_MAGIC)$($(@F)-SONAME) -shared \ - $(filter %.opic,$^) \ - $($(@F)-SLIBS) - -# Compilation rules -vpath %.cc $(SUBDIRS) -$(OBJ)/%.opic: %.cc $(LIBRARYDEPENDS) - echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXSTD) $(CXXFLAGS) $(PICFLAGS) -o $@ '$(abspath $<)' - $(DoDep) - -# Include the dependencies that are available -The_DFiles = $(wildcard $($(LOCAL)-DEP)) -ifneq ($(words $(The_DFiles)),0) -include $(The_DFiles) -endif diff --git a/buildlib/libversion.mak b/buildlib/libversion.mak deleted file mode 100644 index 1b1855be3..000000000 --- a/buildlib/libversion.mak +++ /dev/null @@ -1,14 +0,0 @@ -# -*- make -*- -# Version number of libapt-pkg. -# Please increase MAJOR with each ABI break, -# with each non-ABI break to the lib, please increase RELEASE. -# The versionnumber is extracted from apt-pkg/macros.h - see also there. -LIBAPTPKG_MAJOR=$(shell awk -v ORS='.' '/^\#define APT_PKG_M/ {print $$3}' $(BASE)/apt-pkg/contrib/macros.h | sed 's/\.$$//') -LIBAPTPKG_RELEASE=$(shell grep '^\#define APT_PKG_RELEASE' $(BASE)/apt-pkg/contrib/macros.h | cut -d ' ' -f 3) - -# Version number of libapt-inst -# Please increase MAJOR with each ABI break, -# with each non-ABI break to the lib, please increase MINOR. -# The versionnumber is extracted from apt-inst/makefile - see also there. -LIBAPTINST_MAJOR=$(shell grep '^MAJOR=' $(BASE)/apt-inst/makefile |cut -d '=' -f 2) -LIBAPTINST_MINOR=$(shell grep '^MINOR=' $(BASE)/apt-inst/makefile |cut -d '=' -f 2) diff --git a/buildlib/makefile.in b/buildlib/makefile.in deleted file mode 100644 index 66144cfc6..000000000 --- a/buildlib/makefile.in +++ /dev/null @@ -1,46 +0,0 @@ -# -*- make -*- - -# This is the build directory make file, it sets the build directory -# and runs the src makefile. -ifndef NOISY -.SILENT: -endif -include environment.mak - -SRCDIR=@top_srcdir@ -BUILD:=$(shell pwd) -export BUILD - -# Chain to the parent make to do the actual building -.PHONY: headers library clean veryclean all binary program doc \ - veryclean/local -all headers library clean veryclean binary program doc: - $(MAKE) -C $(SRCDIR) -f Makefile $@ - -# Purge everything. -.PHONY: maintainer-clean dist-clean pristine sanity distclean -maintainer-clean dist-clean pristine sanity distclean: - -rm -rf $(DIRS) - -rm -f config.cache config.log config.status environment.mak makefile - -# Create the required directories and build the shims -# The configure script fills in below, and then we do the right things.. -# This cannot go in the configure script since the directories have not yet -# been created.. In any event I like the idea that you can change environment.mak -# and run make dirs and have the shims updated. -.PHONY: dirs -dirs: - $(MAKE) -C $(SRCDIR) -f Makefile $@ -ifeq ($(HAVE_STATVFS),yes) - @rm -f include/statvfs.h > /dev/null 2>&1 -else - @cp -p $(SRCDIR)/buildlib/statvfs.h.in include/statvfs.h - ln -sf . include/sys -endif -ifeq ($(NEED_SOCKLEN_T_DEFINE),yes) - @cp -p $(SRCDIR)/buildlib/netdb.h.in include/netdb.h -else - @rm -f include/netdb.h > /dev/null 2>&1 -endif - rm -f include/python - ln -sf $(PYTHONINCLUDE) include/python diff --git a/buildlib/manpage.mak b/buildlib/manpage.mak deleted file mode 100644 index 063841d86..000000000 --- a/buildlib/manpage.mak +++ /dev/null @@ -1,30 +0,0 @@ -# -*- make -*- - -# This installs man pages into the doc directory - -# Input -# $(SOURCE) - The documents to use - -# All output is written to files in the build doc directory - -# See defaults.mak for information about LOCAL - -# Some local definitions -LOCAL := manpage-$(firstword $(SOURCE)) -$(LOCAL)-LIST := $(addprefix $(DOC)/,$(SOURCE)) - -# Install generation hooks -doc: manpages -manpages: $($(LOCAL)-LIST) -veryclean: veryclean/$(LOCAL) - -MKDIRS += $(DOC) - -$($(LOCAL)-LIST) : $(DOC)/% : % - echo Installing man page $< to $(@D) - cp $< $(@D) - -# Clean rule -.PHONY: veryclean/$(LOCAL) -veryclean/$(LOCAL): - -rm -rf $($(@F)-LIST) diff --git a/buildlib/netdb.h.in b/buildlib/netdb.h.in deleted file mode 100644 index 0fa60e157..000000000 --- a/buildlib/netdb.h.in +++ /dev/null @@ -1,6 +0,0 @@ -/* Fix broken unixen. */ -#include <config.h> -#ifdef NEED_SOCKLEN_T_DEFINE - #define socklen_t size_t -#endif -#include_next <netdb.h> diff --git a/buildlib/po4a_manpage.mak b/buildlib/po4a_manpage.mak deleted file mode 100644 index df12e115c..000000000 --- a/buildlib/po4a_manpage.mak +++ /dev/null @@ -1,74 +0,0 @@ -# -*- make -*- - -# This handles man pages with po4a. We convert to the respective -# output in the source directory then copy over to the final dest. This -# means po4a is only needed if compiling from bzr - -# Input -# $(LC) - The language code of the translation - -# See defaults.mak for information about LOCAL - -# generate a list of accepted man page translations -SOURCE = $(patsubst %.xml,%,$(wildcard *.$(LC).?.xml)) -INCLUDES = apt.ent apt-verbatim.ent apt-vendor.ent - -manpages: - -%.xsl: ../%.xsl - cp -a $< . - -# Do not use XMLTO, build the manpages directly with XSLTPROC -ifdef XSLTPROC - -STYLESHEET=manpage-style.xsl - -LOCAL := po4a-manpage-$(firstword $(SOURCE)) -$(LOCAL)-LIST := $(SOURCE) - -# Install generation hooks -manpages: $($(LOCAL)-LIST) -clean: clean/$(LOCAL) -veryclean: veryclean/$(LOCAL) - -apt-verbatim.ent: ../apt-verbatim.ent - cp -a ../apt-verbatim.ent . - -apt-vendor.ent: ../apt-vendor.ent - cp -a ../apt-vendor.ent . - -$($(LOCAL)-LIST) :: % : %.xml $(STYLESHEET) $(INCLUDES) - echo Creating man page $@ - $(XSLTPROC) \ - --stringparam l10n.gentext.default.language $(LC) \ - -o $@ $(STYLESHEET) $< || exit 200 # why xsltproc doesn't respect the -o flag here??? - test -f $(subst .$(LC),,$@) || echo 'FIXME: xsltproc respects the -o flag now, workaround can be removed' - mv -f $(subst .$(LC),,$@) $@ - -# Clean rule -.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) -clean/$(LOCAL): - rm -f $($(@F)-LIST) apt.ent apt-verbatim.ent -veryclean/$(LOCAL): - # we are nuking the directory we are working in as it is auto-generated - rm -rf '$(abspath .)' - -HAVE_PO4A=yes -endif - -# take care of the rest -INCLUDES := - -ifndef HAVE_PO4A -# Strip from the source list any man pages we don't have compiled already -SOURCE := $(wildcard $(SOURCE)) -endif - -# Chain to the manpage rule -ifneq ($(words $(SOURCE)),0) -include $(MANPAGE_H) -endif - -# DocBook XML Documents -SOURCE := $(wildcard *.$(LC).dbk) -include $(DOCBOOK_H) diff --git a/buildlib/podomain.mak b/buildlib/podomain.mak deleted file mode 100644 index 265359abc..000000000 --- a/buildlib/podomain.mak +++ /dev/null @@ -1,27 +0,0 @@ -# -*- make -*- - -# This creates the file listing used by xgettext and friends based on the -# declared domain of the make file. It also arranges to set the DOMAIN -# CPPFLAG for the compilation. - -ifneq ($(APT_DOMAIN),none) - -MY_DOMAIN := $(PACKAGE) -ifdef APT_DOMAIN -$($(LOCAL)-OBJS): CPPFLAGS := $(CPPFLAGS) -DAPT_DOMAIN='"$(APT_DOMAIN)"' -MY_DOMAIN := $(APT_DOMAIN) -endif - -MKDIRS += $(PO_DOMAINS)/$(MY_DOMAIN) -$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: SRC := $(addprefix $(SUBDIR)/,$(SOURCE)) -$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: makefile dirs - (echo $(SRC) | xargs -n1 echo) > $@.tmp - cmp --silent $@.tmp $@ || mv $@.tmp $@ -startup binary program clean update-po: $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list - -veryclean: veryclean/$(LOCAL) -veryclean/po/$(LOCAL): LIST := $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list -veryclean/po/$(LOCAL): - rm -f $(LIST) - -endif diff --git a/buildlib/program.mak b/buildlib/program.mak deleted file mode 100644 index 1b4a5719a..000000000 --- a/buildlib/program.mak +++ /dev/null @@ -1,60 +0,0 @@ -# -*- make -*- - -# This creates a program - -# Input -# $(SOURCE) - The source code to use -# $(PROGRAM) - The name of the program -# $(SLIBS) - Shared libs to link against -# $(LIB_MAKES) - Shared library make files to depend on - to ensure we get -# remade when the shared library version increases. - -# See defaults.mak for information about LOCAL - -# Some local definitions -LOCAL := $(PROGRAM) -$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(notdir $(basename $(SOURCE))))) -$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .o.d,$(notdir $(basename $(SOURCE))))) -$(LOCAL)-BIN := $(BIN)/$(PROGRAM) -$(LOCAL)-SLIBS := $(SLIBS) -$(LOCAL)-MKS := $(addprefix $(BASE)/,$(LIB_MAKES)) - -# Install the command hooks -program: $(BIN)/$(PROGRAM) -clean: clean/$(LOCAL) -veryclean: veryclean/$(LOCAL) - -TYPE = src -include $(PODOMAIN_H) - -# Make Directories -MKDIRS += $(OBJ) $(DEP) $(BIN) - -# The clean rules -.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) -clean/$(LOCAL): - -rm -f $($(@F)-OBJS) $($(@F)-DEP) -veryclean/$(LOCAL): clean/$(LOCAL) - -rm -f $($(@F)-BIN) - -# The convience binary build rule -.PHONY: $(PROGRAM) -$(PROGRAM): $($(LOCAL)-BIN) - -# The binary build rule -$($(LOCAL)-BIN): $($(LOCAL)-OBJS) $($(LOCAL)-MKS) - echo Building program $@ - $(CXX) $(CXXSTD) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) -o $@ $(filter %.o,$^) $($(@F)-SLIBS) $(LEFLAGS) - -# Compilation rules -vpath %.cc $(SUBDIRS) -$(OBJ)/%.o: %.cc - echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXSTD) $(CXXFLAGS) -o $@ '$(abspath $<)' - $(DoDep) - -# Include the dependencies that are available -The_DFiles = $(wildcard $($(LOCAL)-DEP)) -ifneq ($(words $(The_DFiles)),0) -include $(The_DFiles) -endif diff --git a/buildlib/python.mak b/buildlib/python.mak deleted file mode 100644 index 25349daa0..000000000 --- a/buildlib/python.mak +++ /dev/null @@ -1,68 +0,0 @@ -# -*- make -*- - -# This creates a python shared module. - -# Input -# $(SOURCE) - The source code to use -# $(MODULE) - The name of the module without module or .so - -# All output is writtin to .opic files in the build directory to -# signify the PIC output. - -# See defaults.mak for information about LOCAL - -# Some local definitions -LOCAL := $(MODULE)module.so -$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .opic,$(notdir $(basename $(SOURCE))))) -$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .opic.d,$(notdir $(basename $(SOURCE))))) -$(LOCAL)-SLIBS := $(SLIBS) -$(LOCAL)-MODULE := $(MODULE) - -# Install the command hooks -library: $(LIB)/$(MODULE)module.so -clean: clean/$(LOCAL) -veryclean: veryclean/$(LOCAL) - -# Make Directories -MKDIRS += $(OBJ) $(DEP) $(LIB) - -# The clean rules -.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) -clean/$(LOCAL): - -rm -f $($(@F)-OBJS) $($(@F)-DEP) -veryclean/$(LOCAL): clean/$(LOCAL) - -rm -f $($(@F)-HEADERS) $(LIB)/$($(@F)-MODULE)module.so* - -# The binary build rule. -ifdef PYTHONLIB -ifndef ONLYSTATICLIBS -$(LIB)/$(MODULE)module.so: $($(LOCAL)-OBJS) - -rm -f $(LIB)/$($(@F)-MODULE)module.so* 2> /dev/null - echo Building shared Python module $@ - $(CXX) $(CXXSTD) $(CXXFLAGS) $(LDFLAGS) $(PICFLAGS) $(LFLAGS) $(LFLAGS_SO)\ - -o $@ -shared \ - $(filter %.opic,$^) \ - $($(@F)-SLIBS) $(PYTHONLIB) -else -.PHONY: $(LIB)/$(MODULE)module.so -$(LIB)/$(MODULE)module.so: - echo Don't know how to make a python module here, not building $@ -endif # ifndef ONLYSTATICLIBS -else -.PHONY: $(LIB)/$(MODULE)module.so -$(LIB)/$(MODULE)module.so: - echo No python support, not building $@ -endif # ifdef PYTHONLIB - -# Compilation rules -vpath %.cc $(SUBDIRS) -$(OBJ)/%.opic: %.cc - echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXSTD) $(CXXFLAGS) $(PICFLAGS) -o $@ '$(abspath $<)' - $(DoDep) - -# Include the dependencies that are available -The_DFiles = $(wildcard $($(LOCAL)-DEP)) -ifneq ($(words $(The_DFiles)),0) -include $(The_DFiles) -endif diff --git a/buildlib/staticlibrary.mak b/buildlib/staticlibrary.mak deleted file mode 100644 index e81770e8a..000000000 --- a/buildlib/staticlibrary.mak +++ /dev/null @@ -1,60 +0,0 @@ -# -*- make -*- - -# This creates a static library. - -# Input -# $(SOURCE) - The source code to use -# $(HEADERS) - Exported header files and private header files -# $(LIBRARY) - The name of the library without lib or .so - -# All output is writtin to .o files in the build directory - -# See defaults.mak for information about LOCAL - -# Some local definitions -LOCAL := lib$(LIBRARY).a -$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(notdir $(basename $(SOURCE))))) -$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .o.d,$(notdir $(basename $(SOURCE))))) -$(LOCAL)-HEADERS := $(addprefix $(INCLUDE)/,$(HEADERS)) -$(LOCAL)-LIB := $(LIB)/lib$(LIBRARY).a - -# Install the command hooks -headers: $($(LOCAL)-HEADERS) -library: $($(LOCAL)-LIB) -clean: clean/$(LOCAL) -veryclean: veryclean/$(LOCAL) - -# Make Directories -MKDIRS += $(OBJ) $(DEP) $(LIB) $(dir $($(LOCAL)-HEADERS)) - -# The clean rules -.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) -clean/$(LOCAL): - -rm -f $($(@F)-OBJS) $($(@F)-DEP) -veryclean/$(LOCAL): clean/$(LOCAL) - -rm -f $($(@F)-HEADERS) $($(@F)-LIB) - -# Build rules for the two symlinks -.PHONY: $($(LOCAL)-LIB) - -# The binary build rule -$($(LOCAL)-LIB): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) - echo Building library $@ - -rm $@ > /dev/null 2>&1 - $(AR) cq $@ $(filter %.o,$^) -ifneq ($(words $(RANLIB)),0) - $(RANLIB) $@ -endif - -# Compilation rules -vpath %.cc $(SUBDIRS) -$(OBJ)/%.o: %.cc - echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXSTD) $(CXXFLAGS) -o $@ '$(abspath $<)' - $(DoDep) - -# Include the dependencies that are available -The_DFiles = $(wildcard $($(LOCAL)-DEP)) -ifneq ($(words $(The_DFiles)),0) -include $(The_DFiles) -endif diff --git a/buildlib/statvfs.h.in b/buildlib/statvfs.h.in deleted file mode 100644 index d0ec238ad..000000000 --- a/buildlib/statvfs.h.in +++ /dev/null @@ -1,13 +0,0 @@ -/* Compatibility for systems with out Single Unix Spec statvfs */ -#include <config.h> - -#ifdef HAVE_VFS_H -#include <sys/vfs.h> -#endif - -#ifdef HAVE_MOUNT_H -#include <sys/param.h> -#include <sys/mount.h> -#endif - -#define statvfs statfs diff --git a/buildlib/tools.m4 b/buildlib/tools.m4 deleted file mode 100644 index 433d5ca32..000000000 --- a/buildlib/tools.m4 +++ /dev/null @@ -1,110 +0,0 @@ -AC_DEFUN([ah_HAVE_GETCONF], - [AC_ARG_WITH(getconf, - [ --with-getconf Enable automagical buildtime configuration], - [if test "$withval" = "yes"; then - AC_PATH_PROG(GETCONF, getconf) - elif test ! "$withval" = "no";then - AC_MSG_CHECKING([getconf]) - AC_MSG_RESULT([$withval]) - GETCONF=$withval - fi], - [AC_PATH_PROG(GETCONF, getconf)] - ) - AC_SUBST(GETCONF) -]) - -dnl ah_GET_CONF(variable, value ..., [default]) -AC_DEFUN([ah_GET_GETCONF], - [AC_REQUIRE([ah_HAVE_GETCONF]) - if test ! -z "$GETCONF";then - old_args="[$]@" - set -- $2 - while eval test -z \"\$$1\" -a ! -z \"[$]1\";do - eval $1=`$GETCONF "[$]1" 2>/dev/null` - shift - done - fi - if eval test -z \"\$$1\" -o \"\$$1\" = "-1";then - eval $1="$3" - fi -]) -AC_DEFUN([ah_NUM_CPUS], - [AC_MSG_CHECKING([number of cpus]) - AC_ARG_WITH(cpus, - [ --with-cpus The number of cpus to be used for building(see --with-procs, default 1)], - [ - if test "$withval" = "yes"; then - ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1) - elif test ! "$withval" = "no";then - NUM_CPUS=$withval - elif test "$withval" = "no";then - NUM_CPUS=1 - fi], - [ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1)] - ) - ah_NUM_CPUS_msg="$NUM_CPUS" - if test "$NUM_CPUS" = "0"; then - # broken getconf, time to bitch. - ah_NUM_CPUS_msg="found 0 cpus. Has someone done a lobotomy?" - NUM_CPUS=1 - fi - if test $NUM_CPUS = 1 ;then - default_PROC_MULTIPLY=1 - else - default_PROC_MULTIPLY=2 - fi - AC_MSG_RESULT([$ah_NUM_CPUS_msg]) - AC_SUBST(NUM_CPUS) -]) -AC_DEFUN([ah_PROC_MULTIPLY], - [AC_REQUIRE([ah_NUM_CPUS]) - AC_MSG_CHECKING([processor multiplier]) - AC_ARG_WITH(proc-multiply, - [ --with-proc-multiply Multiply this * number of cpus for parallel making(default 2).], - [if test "$withval" = "yes"; then - PROC_MULTIPLY=$default_PROC_MULTIPLY - elif test ! "$withval" = "no";then - PROC_MULTIPLY=$withval - fi], - [PROC_MULTIPLY=$default_PROC_MULTIPLY] - ) - AC_MSG_RESULT([$PROC_MULTIPLY]) - AC_SUBST(PROC_MULTIPLY) -]) - -AC_DEFUN([ah_NUM_PROCS], - [AC_REQUIRE([ah_PROC_MULTIPLY]) - AC_REQUIRE([ah_NUM_CPUS]) - AC_MSG_CHECKING([number of processes to run during make]) - AC_ARG_WITH(procs, - [ --with-procs The number of processes to run in parallel during make(num_cpus * multiplier).], - [if test "$withval" = "yes"; then - NUM_PROCS=`expr $NUM_CPUS \* $PROC_MULTIPLY` - elif test ! "$withval" = "no";then - NUM_PROCS=$withval - fi], - [NUM_PROCS=`expr $NUM_CPUS \* $PROC_MULTIPLY`] - ) - AC_MSG_RESULT([$NUM_PROCS]) - AC_SUBST(NUM_PROCS) -]) - -AC_DEFUN([ah_GCC3DEP],[ - AC_MSG_CHECKING(if $CXX -MD works) - touch gcc3dep.cc - ${CXX-c++} -MD -o gcc3dep_test.o -c gcc3dep.cc - rm -f gcc3dep.cc gcc3dep_test.o - if test -e gcc3dep.d; then - rm -f gcc3dep.d - GCC_MD=input - GCC3DEP= - elif test -e gcc3dep_test.d; then - rm -f gcc3dep_test.d - GCC_MD=output - GCC3DEP=yes - else - AC_MSG_ERROR(no) - fi - AC_MSG_RESULT([yes, for $GCC_MD]) - AC_SUBST(GCC3DEP) -]) diff --git a/cmdline/makefile b/cmdline/makefile deleted file mode 100644 index 8b79ce05f..000000000 --- a/cmdline/makefile +++ /dev/null @@ -1,119 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=cmdline - -# Bring in the default rules -include ../buildlib/defaults.mak - -# The apt program -PROGRAM=apt -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt.cc -include $(PROGRAM_H) - -# The apt-cache program -PROGRAM=apt-cache -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-cache.cc -include $(PROGRAM_H) - -# The apt-get program -PROGRAM=apt-get -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-get.cc -include $(PROGRAM_H) - -# The apt-config program -PROGRAM=apt-config -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-config.cc -include $(PROGRAM_H) - -# The apt-cdrom program -PROGRAM=apt-cdrom -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-cdrom.cc -include $(PROGRAM_H) - -# The apt-mark program -PROGRAM=apt-mark -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-mark.cc -include $(PROGRAM_H) - -# The apt-helper -PROGRAM=apt-helper -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -lresolv -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-helper.cc -include $(PROGRAM_H) - -# The apt-report-mirror-failure program -#SOURCE=apt-report-mirror-failure -#TO=$(BIN) -#TARGET=program -#include $(COPY_H) - -# -# the following programs are shipped in apt-utils -# -APT_DOMAIN:=apt-utils - -# The apt-sortpkgs program -PROGRAM=apt-sortpkgs -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-sortpkgs.cc -include $(PROGRAM_H) - -# The apt-extracttemplates program -PROGRAM=apt-extracttemplates -SLIBS = -lapt-pkg -lapt-inst -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-inst/makefile apt-private/makefile -SOURCE = apt-extracttemplates.cc -include $(PROGRAM_H) - -# The internal solver/planner acting as an external -PROGRAM=apt-internal-solver -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-internal-solver.cc -include $(PROGRAM_H) - -PROGRAM=apt-internal-planner -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-internal-planner.cc -include $(PROGRAM_H) - -# This just dumps out the state -PROGRAM=apt-dump-solver -SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-private/makefile -SOURCE = apt-dump-solver.cc -include $(PROGRAM_H) - -# The apt-key program -apt-key: apt-key.in - sed -e "s#&keyring-filename;#$(shell ../vendor/getinfo keyring-filename)#" \ - -e "s#&keyring-removed-filename;#$(shell ../vendor/getinfo keyring-removed-filename)#" \ - -e "s#&keyring-master-filename;#$(shell ../vendor/getinfo keyring-master-filename)#" \ - -e "s#&keyring-uri;#$(shell ../vendor/getinfo keyring-uri)#" \ - -e "s#&keyring-package;#$(shell ../vendor/getinfo keyring-package)#" $< > $@ - chmod 755 $@ - -SOURCE=apt-key -TO=$(BIN) -TARGET=program -include $(COPY_H) - -clean: clean/apt-key - -clean/apt-key: - rm -f apt-key diff --git a/configure.ac b/configure.ac deleted file mode 100644 index c1e61da66..000000000 --- a/configure.ac +++ /dev/null @@ -1,218 +0,0 @@ -ad -dnl Process this file with autoconf to produce a configure script. -dnl The ONLY thing this is used for is to configure for different -dnl linux architectures and configurations, it is not used to make the -dnl code more portable - -dnl You MUST have an environment that has all the POSIX functions and -dnl some of the more popular bsd/sysv ones (like select). You'll also -dnl need a C++ compiler that is semi-standard conformant, exceptions are -dnl not used but STL is. - -dnl 'make -f Makefile startup' will generate the configure file from -dnl configure.ac correctly and can be run at any time - -AC_PREREQ([2.68]) -AC_INIT -AC_CONFIG_SRCDIR([configure.ac]) -AC_CONFIG_AUX_DIR(buildlib) -AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) - -PACKAGE="apt" -PACKAGE_VERSION="1.3~pre3+cmake2" -PACKAGE_MAIL="APT Development Team <deity@lists.debian.org>" -AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") -AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION") -AC_DEFINE_UNQUOTED(PACKAGE_MAIL,"$PACKAGE_MAIL") -AC_SUBST(PACKAGE) -AC_SUBST(PACKAGE_VERSION) -AC_SUBST(PACKAGE_MAIL) - -dnl Check the archs, we want the target type. -AC_CANONICAL_TARGET - -dnl Check our C compiler - -AC_PROG_CC -AC_SEARCH_LIBS([strerror],[cposix]) - -dnl check for large file support and enable it if possible -dnl do this early as other stuff might depend on it -AC_SYS_LARGEFILE - -dnl Check for other programs -AC_PROG_CXX -AC_PROG_CPP -AC_PROG_RANLIB -AC_CHECK_TOOL(AR,ar,"ar") - -dnl Checks for sockets -SAVE_LIBS="$LIBS" -LIBS="" -AC_SEARCH_LIBS(gethostbyname,nsl) -AC_SEARCH_LIBS(connect,socket) -SOCKETLIBS="$LIBS" -AC_SUBST(SOCKETLIBS) -LIBS="$SAVE_LIBS" - -dnl Checks for pthread -AC_CHECK_LIB(pthread, pthread_create,[AC_DEFINE(HAVE_PTHREAD) PTHREADLIB="-lpthread"]) -AC_SUBST(PTHREADLIB) -if test "$PTHREADLIB" != "-lpthread"; then - AC_MSG_ERROR(failed: I need posix threads, pthread) -fi - -dnl Check for BDB -saveLIBS="$LIBS" -LIBS="$LIBS -ldb" - -AC_CHECK_HEADER(db.h, - [AC_MSG_CHECKING(if we can link against BerkeleyDB) - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [#include <db.h>], - [int r, s, t; db_version(&r, &s, &t);] - )], - [AC_DEFINE(HAVE_BDB) - BDBLIB="-ldb" - AC_MSG_RESULT(yes)], - [BDBLIB="" - AC_MSG_RESULT(no)] - )] -) - -LIBS="$saveLIBS" - -AC_CHECK_LIB(curl, curl_easy_init, - [AC_CHECK_HEADER(curl/curl.h, - curl_ok=yes, - curl_ok=no)], - AC_MSG_ERROR([failed: I need CURL due https support]), -) - -AC_LANG_PUSH([C++]) -AC_CHECK_HEADER(gtest/gtest.h,, - AC_MSG_WARN([failed: I need gtest (packaged as libgtest-dev) for unit testing]), -) -AC_LANG_POP([C++]) - - -AC_SUBST(BDBLIB) - -HAVE_ZLIB=no -AC_CHECK_LIB(z, gzopen, - [AC_CHECK_HEADER(zlib.h, [HAVE_ZLIB=yes], AC_MSG_ERROR([failed: zlib.h not found]))], - AC_MSG_ERROR([failed: Need libz])) -AC_SUBST(HAVE_ZLIB) -if test "x$HAVE_ZLIB" = "xyes"; then - AC_DEFINE(HAVE_ZLIB) -fi - -HAVE_LZ4=no -AC_CHECK_LIB(lz4, LZ4F_createCompressionContext,[AC_CHECK_HEADER(lz4frame.h, [HAVE_LZ4=yes], [])], []) -AC_SUBST(HAVE_LZ4) -if test "x$HAVE_LZ4" = "xyes"; then - AC_DEFINE(HAVE_LZ4) -fi - -HAVE_BZ2=no -AC_CHECK_LIB(bz2, BZ2_bzopen,[AC_CHECK_HEADER(bzlib.h, [HAVE_BZ2=yes], [])], []) -AC_SUBST(HAVE_BZ2) -if test "x$HAVE_BZ2" = "xyes"; then - AC_DEFINE(HAVE_BZ2) -fi - -HAVE_LZMA=no -AC_CHECK_LIB(lzma, lzma_easy_encoder,[AC_CHECK_HEADER(lzma.h, [HAVE_LZMA=yes], [])], []) -AC_SUBST(HAVE_LZMA) -if test "x$HAVE_LZMA" = "xyes"; then - AC_DEFINE(HAVE_LZMA) -fi - -dnl Converts the ARCH to be something singular for this general CPU family -dnl This is often the dpkg architecture string. -dnl First check against the full canonical canoncial-system-type in $target -dnl and if that fails, just look for the cpu -AC_MSG_CHECKING(debian architecture) -archset="`dpkg-architecture -qDEB_HOST_ARCH`" -if test "x$archset" = "x"; then - AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture]) -fi -AC_MSG_RESULT($archset) -AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset") - -dnl Single Unix Spec statvfs -AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes]) -AC_SUBST(HAVE_STATVFS) - -dnl Arg, linux and bsd put their statfs function in different places -if test x"$HAVE_STATVFS" != x"yes"; then - AC_EGREP_HEADER(statfs,sys/vfs.h,[AC_DEFINE(HAVE_VFS_H)],[ - AC_EGREP_HEADER(statfs,sys/mount.h,[AC_DEFINE(HAVE_MOUNT_H)],[AC_MSG_ERROR(failed: Need statvfs)]) - ]) -fi - -AC_CHECK_MEMBERS([struct statfs.f_type],,, - [$ac_includes_default - #include <sys/vfs.h>]) - -dnl We should use the real timegm function if we have it. -AC_CHECK_FUNC(timegm,AC_DEFINE(HAVE_TIMEGM)) -AC_SUBST(HAVE_TIMEGM) - -dnl Check the architecture -AC_C_BIGENDIAN - -dnl HP-UX sux.. -AC_MSG_CHECKING(for missing socklen_t) -AC_EGREP_HEADER(socklen_t, sys/socket.h,[AC_MSG_RESULT(no)],[ - AC_DEFINE(NEED_SOCKLEN_T_DEFINE) - NEED_SOCKLEN_T_DEFINE=yes - AC_MSG_RESULT(missing.)]) -AC_SUBST(NEED_SOCKLEN_T_DEFINE) - -dnl HP-UX needs -d_XOPEN_SOURCE_EXTENDED for h_errno -AC_MSG_CHECKING(for h_errno) -AC_EGREP_HEADER(h_errno, netdb.h, [AC_MSG_RESULT(normal)], - [CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" - AC_EGREP_HEADER(h_errno, netdb.h, - [AC_MSG_RESULT(needs _XOPEN_SOURCE_EXTENDED)], - [AC_MSG_ERROR("not found.")]) - ]) - - -dnl check for setuid checking function -AC_CHECK_FUNCS(getresuid getresgid setresuid setresgid) -AC_SUBST(HAVE_GETRESUID) -AC_SUBST(HAVE_GETRESGID) -AC_SUBST(HAVE_SETRESUID) -AC_SUBST(HAVE_SETRESGID) - -dnl Check for doxygen -AC_PATH_PROG(DOXYGEN, doxygen) - -dnl Check for the XSLTProc tool needed to build man pages together with po4a -AC_PATH_PROG(XSLTPROC,xsltproc) -AC_PATH_PROG(W3M, w3m) - -dnl Check for the po4a tool needed to build man pages -AC_PATH_PROG(PO4A,po4a) - -dnl Check for graphviz -AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO]) -AC_PATH_PROG([DOT], [dot], []) -DOTDIR=$(dirname $DOT) -AC_SUBST(DOTDIR) - -ah_NUM_PROCS -ah_GCC3DEP - -AM_GNU_GETTEXT(external) -if test x"$USE_NLS" = "xyes"; then - AC_DEFINE(USE_NLS) -fi -AC_SUBST(USE_NLS) -AC_PATH_PROG(BASH, bash) - -AC_CONFIG_FILES([environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile:doc/Doxyfile.in]) -AC_OUTPUT diff --git a/doc/en/makefile b/doc/en/makefile deleted file mode 100644 index 8659de6f6..000000000 --- a/doc/en/makefile +++ /dev/null @@ -1,37 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=doc/en - -# Bring in the default rules -include ../../buildlib/defaults.mak - -# Do not use XMLTO, build the manpages directly with XSLTPROC -ifdef XSLTPROC -# generate a list of accepted man page translations -SOURCE = $(patsubst ../%.xml,%,$(wildcard ../*.?.xml)) -INCLUDES = ../apt.ent ../apt-verbatim.ent apt-vendor.ent -STYLESHEET=../manpage-style.xsl - -LOCAL := manpage-$(firstword $(SOURCE)) -$(LOCAL)-LIST := $(SOURCE) - -apt-vendor.ent: ../../vendor/current/apt-vendor.ent - ln -sf '$(abspath $^)' $@ - -# Install generation hooks -manpages: $($(LOCAL)-LIST) - -$($(LOCAL)-LIST) :: % : ../%.xml $(STYLESHEET) $(INCLUDES) - echo Creating man page $@ - $(XSLTPROC) -o $@ $(STYLESHEET) $< - -# Clean rule -.PHONY: clean/$(LOCAL) -veryclean: clean/$(LOCAL) -clean: clean/$(LOCAL) -clean/$(LOCAL): - -rm -rf $($(@F)-LIST) apt-vendor.ent -endif - -# Chain to the manpage rule -include $(MANPAGE_H) diff --git a/doc/lang.makefile b/doc/lang.makefile deleted file mode 100644 index 9fdc6ea70..000000000 --- a/doc/lang.makefile +++ /dev/null @@ -1,11 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=doc/@@LANG@@ - -# Bring in the default rules -include ../../buildlib/defaults.mak - -# Language Code of this translation -LC=@@LANG@@ - -include $(PO4A_MANPAGE_H) diff --git a/doc/makefile b/doc/makefile deleted file mode 100644 index 785c0b125..000000000 --- a/doc/makefile +++ /dev/null @@ -1,113 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=doc - -# Bring in the default rules -include ../buildlib/defaults.mak - -# DocBook XML Documents -SOURCE = $(wildcard *.dbk) -LC = en -include $(DOCBOOK_H) - -doc: manpages docbook - -examples/sources.list: ../vendor/current/sources.list - ln -sf '$(abspath $^)' $@ - -apt-vendor.ent: ../vendor/current/apt-vendor.ent - ln -sf '$(abspath $^)' $@ - -# Examples -SOURCE = examples/apt.conf examples/sources.list examples/configure-index examples/apt-https-method-example.conf -TO = $(DOC) -TARGET = binary -include $(COPY_H) - -.PHONY: clean clean/subdirs veryclean veryclean/subdirs manpages/subdirs docbook/subdirs all binary doc stats - -clean: clean/subdirs clean/examples -veryclean: veryclean/subdirs clean/examples -manpages: apt-vendor.ent manpages/subdirs -docbook: apt-vendor.ent docbook/subdirs - -DOCUMENTATIONPO = $(patsubst %.po,%,$(notdir $(wildcard po/*.po))) -DOCDIRLIST = $(addsuffix /makefile,$(DOCUMENTATIONPO)) - -dirs: $(DOCDIRLIST) -$(DOCDIRLIST) :: %/makefile : lang.makefile - test -d $(dir $@) || mkdir $(dir $@) - sed "s#@@LANG@@#$(subst /,,$(dir $@))#" $< > $@ - -docbook/subdirs manpages/subdirs clean/subdirs veryclean/subdirs: - for dir in en $(dir $(DOCDIRLIST)); do \ - $(MAKE) -C $$dir $(patsubst %/subdirs,%,$@); \ - done - -clean/examples: - rm -f examples/sources.list - rm -f apt-vendor.ent - -stats: - for i in po/*.po; do echo -n "$$i: "; msgfmt --output-file=/dev/null --statistics $$i; done - -ifdef PO4A -MANPAGEPOLIST = $(addprefix manpages-translation-,$(DOCUMENTATIONPO)) -DOCBOOKPOLIST = $(addprefix docbook-translation-,$(DOCUMENTATIONPO)) - -.PHONY: update-po po4a $(MANPAGEPOLIST) $(DOCBOOKPOLIST) $(DOCDIRLIST) - -po4a: manpages/subdirs docbook/subdirs - -update-po: - po4a --previous --no-backups --force --no-translations \ - --msgmerge-opt --add-location=file \ - --porefs noline,wrap \ - --package-name='$(PACKAGE)-doc' --package-version='$(PACKAGE_VERSION)' \ - --msgid-bugs-address='$(PACKAGE_MAIL)' po4a.conf - sed -n '/^#$$/,$$p' po/apt-doc.pot > po/apt-doc.pot.headerfree - #cat po/apt-doc.pot > po/apt-doc.pot.headerfree - cat po/header.pot.txt po/apt-doc.pot.headerfree > po/apt-doc.pot - rm -f po/apt-doc.pot.headerfree - -manpages/subdirs: $(MANPAGEPOLIST) -$(MANPAGEPOLIST) :: manpages-translation-% : %/makefile po4a.conf - po4a --previous --no-backups --translate-only $(dir $<)apt.ent \ - --msgmerge-opt --add-location=file \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.1.xml,%.$(subst /,,$(dir $<)).1.xml,$(wildcard *.1.xml))) \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.2.xml,%.$(subst /,,$(dir $<)).2.xml,$(wildcard *.2.xml))) \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.3.xml,%.$(subst /,,$(dir $<)).3.xml,$(wildcard *.3.xml))) \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.4.xml,%.$(subst /,,$(dir $<)).4.xml,$(wildcard *.4.xml))) \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.5.xml,%.$(subst /,,$(dir $<)).5.xml,$(wildcard *.5.xml))) \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.6.xml,%.$(subst /,,$(dir $<)).6.xml,$(wildcard *.6.xml))) \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.7.xml,%.$(subst /,,$(dir $<)).7.xml,$(wildcard *.7.xml))) \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.8.xml,%.$(subst /,,$(dir $<)).8.xml,$(wildcard *.8.xml))) \ - --package-name='$(PACKAGE)-doc' --package-version='$(PACKAGE_VERSION)' \ - --msgid-bugs-address='$(PACKAGE_MAIL)' po4a.conf - -docbook/subdirs: $(DOCBOOKPOLIST) -$(DOCBOOKPOLIST) :: docbook-translation-% : %/makefile po4a.conf - po4a --previous --no-backups --translate-only $(dir $<)apt.ent \ - --msgmerge-opt --add-location=file \ - $(patsubst %,--translate-only $(dir $<)%,$(patsubst %.dbk,%.$(subst /,,$(dir $<)).dbk,$(wildcard *.dbk))) \ - --package-name='$(PACKAGE)-doc' --package-version='$(PACKAGE_VERSION)' \ - --msgid-bugs-address='$(PACKAGE_MAIL)' po4a.conf -endif - -ifdef DOXYGEN -DOXYGEN_SOURCES = $(shell find $(BASE)/apt-pkg -not -name .\\\#* -and \( -name \*.cc -or -name \*.h \) ) - -clean: doxygen-clean - -doxygen-clean: - rm -fr $(BUILD)/doc/doxygen - rm -f $(BUILD)/doc/doxygen-stamp - -$(BUILD)/doc/doxygen-stamp: $(DOXYGEN_SOURCES) $(BUILD)/doc/Doxyfile - rm -fr $(BUILD)/doc/doxygen - mkdir $(BUILD)/doc/doxygen # some versions seem to not create this directory #628799 - $(DOXYGEN) $(BUILD)/doc/Doxyfile - touch $(BUILD)/doc/doxygen-stamp - -docbook: $(BUILD)/doc/doxygen-stamp -endif diff --git a/dselect/makefile b/dselect/makefile deleted file mode 100644 index fab72b264..000000000 --- a/dselect/makefile +++ /dev/null @@ -1,17 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=dselect - -# Bring in the default rules -include ../buildlib/defaults.mak - -# DSelect interfacing directory -SOURCE = desc.apt install names setup update -TO = $(BUILD)/scripts/dselect -TARGET = program -include $(COPY_H) - -# LOCAL = dselect -SOURCE = install update -TYPE = sh -include $(PODOMAIN_H) diff --git a/ftparchive/makefile b/ftparchive/makefile deleted file mode 100644 index c80487c3f..000000000 --- a/ftparchive/makefile +++ /dev/null @@ -1,21 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=ftparchive - -# Bring in the default rules -include ../buildlib/defaults.mak - -# The apt-ftparchive program -ifdef BDBLIB -APT_DOMAIN:=apt-utils -PROGRAM=apt-ftparchive -SLIBS = -lapt-pkg -lapt-inst -lapt-private $(BDBLIB) $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile apt-inst/makefile apt-private/makefile -SOURCE = apt-ftparchive.cc cachedb.cc writer.cc contents.cc override.cc \ - multicompress.cc sources.cc byhash.cc -include $(PROGRAM_H) -else -PROGRAM=apt-ftparchive -MESSAGE="Must have libdb to build apt-ftparchive" -include $(FAIL_H) -endif # ifdef BDBLIB diff --git a/methods/makefile b/methods/makefile deleted file mode 100644 index 3274e9279..000000000 --- a/methods/makefile +++ /dev/null @@ -1,110 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=methods - -# Bring in the default rules -include ../buildlib/defaults.mak -BIN := $(BIN)/methods - -include ../buildlib/libversion.mak -APT_DOMAIN := apt - -# The file method -PROGRAM=file -SLIBS = -lapt-pkg $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = file.cc -include $(PROGRAM_H) - -# The copy method -PROGRAM=copy -SLIBS = -lapt-pkg $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = copy.cc -include $(PROGRAM_H) - -# The store method -PROGRAM=store -SLIBS = -lapt-pkg $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = store.cc -include $(PROGRAM_H) - -# The gpgv method -PROGRAM=gpgv -SLIBS = -lapt-pkg $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = gpgv.cc -include $(PROGRAM_H) - -# The cdrom method -PROGRAM=cdrom -SLIBS = -lapt-pkg $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = cdrom.cc -include $(PROGRAM_H) - -# The http method -PROGRAM=http -SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) -lresolv -LIB_MAKES = apt-pkg/makefile -SOURCE = http.cc http_main.cc rfc2553emu.cc connect.cc server.cc -include $(PROGRAM_H) - -# The https method -PROGRAM=https -SLIBS = -lapt-pkg -lcurl $(INTLLIBS) -lresolv -LIB_MAKES = apt-pkg/makefile -SOURCE = https.cc server.cc -include $(PROGRAM_H) - -# The ftp method -PROGRAM=ftp -SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) -lresolv -LIB_MAKES = apt-pkg/makefile -SOURCE = ftp.cc rfc2553emu.cc connect.cc -include $(PROGRAM_H) - -# The rred method -PROGRAM=rred -SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = rred.cc -include $(PROGRAM_H) - -# The rsh method -PROGRAM=rsh -SLIBS = -lapt-pkg $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = rsh.cc -include $(PROGRAM_H) - -# The mirror method -PROGRAM=mirror -SLIBS = -lapt-pkg $(SOCKETLIBS) -lresolv -LIB_MAKES = apt-pkg/makefile -SOURCE = mirror.cc http.cc rfc2553emu.cc connect.cc server.cc -include $(PROGRAM_H) - -# SSH method symlink -binary: $(BIN)/ssh -veryclean: clean-$(BIN)/ssh - -$(BIN)/ssh: - echo "Installing ssh method link" - ln -fs rsh $(BIN)/ssh -clean-$(BIN)/ssh: - -rm $(BIN)/ssh - -# create compat links for all compressors -COMPRESSORS=gzip bzip2 lzma xz - -binary: $(addprefix $(BIN)/,$(COMPRESSORS)) -veryclean: $(addprefix clean-$(BIN)/,$(COMPRESSORS)) - -$(addprefix $(BIN)/,$(COMPRESSORS)): $(BIN)/store - echo "Installing $(notdir $@) method link" - ln -fs store $@ - -$(addprefix clean-$(BIN)/,$(COMPRESSORS)): - -rm $(BIN)/$(notdir $@) diff --git a/po/LINGUAS b/po/LINGUAS deleted file mode 100644 index 6d77cf856..000000000 --- a/po/LINGUAS +++ /dev/null @@ -1,7 +0,0 @@ -## If a language isn't listed here but a po file is available the build will fail. -## If a language is disabled deliberately, list it in a line starting with a single '#' - -ar ast bg bs ca cs cy da de dz el es eu fi fr gl hu it ja km ko ku lt mr nb ne nl nn pl pt pt_BR ro ru sk sl sv th tl tr uk vi zh_CN zh_TW - -## disabled by translator request #313283: -# he diff --git a/po/makefile b/po/makefile deleted file mode 100644 index f42d476a3..000000000 --- a/po/makefile +++ /dev/null @@ -1,114 +0,0 @@ -# -*- make -*- - -# This will compile the gettext message catalogues. - -# The other make files drop file lists in build/po/domains/DOMAIN/* which -# is then picked up by this make file to define all the domains and all the -# source files that compose each domain. It then produces the POT files -# and then filters the PO files through the per-domain POT file to create -# the input to msgformat, which is then dumped into a locale directory. - -BASE=.. -SUBDIR=po - -# Bring in the default rules -include ../buildlib/defaults.mak - -CATALOGS := $(addsuffix .gmo, $(shell sed -e '/^\#/ d' -e '/^$$/ d' LINGUAS | tr '\n' ' ')) -DOMAINS := $(sort $(notdir $(wildcard $(PO_DOMAINS)/*))) -POTFILES := $(addsuffix .pot,$(addprefix $(PO)/,$(DOMAINS))) - -# Construct a list of all mo files for all domains under $(PO_DOMAINS) -MOFILES := $(patsubst %.gmo,%.mo,$(CATALOGS)) -MOFILES := $(foreach D,$(DOMAINS),$(addprefix $(PO_DOMAINS)/$(D)/,$(MOFILES))) -LANG_POFILES := $(patsubst %.mo,%.po,$(MOFILES)) -LINGUAS := $(patsubst %.gmo,%,$(CATALOGS)) - -GETDOMAIN = $(word 1,$(subst /, ,$(1))) - -# Generate the list of files from the bits the other make files dropped -# and produce the .pot file. -$(POTFILES) : $(PO)/%.pot : - echo "Generating POT file $@" - echo $@ : $(wildcard $(PO)/domains/$*/*.*list) $(addprefix $(BASE)/,$(shell cat $(wildcard $(PO)/domains/$*/*.srclist))) > $@.d.tmp - cmp --silent $@.d.tmp $@.d || mv $@.d.tmp $@.d -# From sh source - cat $(PO)/domains/$*/*.shlist 2> /dev/null | (cd $(BASE) && xargs -n1 bash --dump-po-strings) > $(PO)/domains/$*/sh.pot.tmp - cmp --silent $(PO)/domains/$*/sh.pot.tmp $(PO)/domains/$*/sh.pot || \ - mv $(PO)/domains/$*/sh.pot.tmp $(PO)/domains/$*/sh.pot -# From C/C++ source - cat $(PO)/domains/$*/*.srclist | sort > $(PO)/POTFILES_$*.in - $(XGETTEXT) --default-domain=$* --directory=$(BASE) \ - --add-comments --foreign --keyword=_ --keyword=N_ \ - --add-location=file \ - --keyword=P_:1,2 \ - --files-from=$(PO)/POTFILES_$*.in -o $(PO)/domains/$*/c.pot.tmp - cmp --silent $(PO)/domains/$*/c.pot.tmp $(PO)/domains/$*/c.pot || \ - mv $(PO)/domains/$*/c.pot.tmp $(PO)/domains/$*/c.pot - rm -f $(PO)/POTFILES_$*.in - $(MSGCOMM) --omit-header --more-than=0 $(PO)/domains/$*/c.pot $(PO)/domains/$*/sh.pot --output=$@.tmp - cmp --silent $@ $@.tmp || mv $@.tmp $@ - # copy into the domain dirs to make rosetta happy - rm -f $(PO)/domains/$*/*.pot - cp $@ $(PO)/domains/$* - -# Filter the complete translation with the domain specific file to produce -# only the subtext needed for this domain -# We cannot express the dependencies required for this directly with a pattern -# rule, so we use the .d hack. -$(LANG_POFILES) : $(PO_DOMAINS)/%.po : $(POTFILES) - printf "%s " "Generating $@" - echo $@ : $(notdir $@) $(PO)/$(call GETDOMAIN,$*).pot > $(PO)/$(call GETDOMAIN,$*)_$(notdir $@).d - $(MSGMERGE) --add-location=file $(notdir $@) $(PO)/$(call GETDOMAIN,$*).pot -o $@ - -$(MOFILES) : $(PO_DOMAINS)/%.mo : $(PO_DOMAINS)/%.po - printf "%s: " "Generating $(LOCALE)/$(notdir $*)/LC_MESSAGES/$(call GETDOMAIN,$*).mo" - $(GMSGFMT) --statistics -o $@ $< - mkdir -p $(LOCALE)/$(notdir $*)/LC_MESSAGES/ - cp $@ $(LOCALE)/$(notdir $*)/LC_MESSAGES/$(call GETDOMAIN,$*).mo - -stats: all-linguas-enabled - for i in *.pot *.po; do echo -n "$$i: "; msgfmt --output-file=/dev/null --statistics $$i; done - -binary: $(POTFILES) $(MOFILES) all-linguas-enabled - -$(PACKAGE)-all.pot: $(POTFILES) - # we create our partial pot files without a header to avoid changing dates in *.mo files, - # but we want a header for our master-pot file, so we use a dummy pot with nothing but the header - $(XGETTEXT) --default-domain=$(PO)/$(PACKAGE)-dummy.pot --foreign --language=c \ - -o $(PO)/$(PACKAGE)-dummy.pot --force-po --package-name='$(PACKAGE)' \ - --package-version='$(PACKAGE_VERSION)' --msgid-bugs-address='$(PACKAGE_MAIL)' /dev/null - $(MSGCOMM) --more-than=0 $(PO)/$(PACKAGE)-dummy.pot $(POTFILES) --output=$(PACKAGE)-all.pot - rm -f $(PO)/$(PACKAGE)-dummy.pot - -.PHONY: update-po all-linguas-enabled -update-po: $(PACKAGE)-all.pot all-linguas-enabled - for lang in ${LINGUAS}; do \ - echo "Updating $$lang.po"; \ - $(MSGMERGE) $$lang.po $(PACKAGE)-all.pot -o $$lang.new.po; \ - cmp $$lang.new.po $$lang.po || cp $$lang.new.po $$lang.po; \ - rm -f $$lang.new.po; \ - done - -all-linguas-enabled: LINGUAS -ifdef NOISY - echo "Available Translations: $(shell ls *.po | cut -d'.' -f 1 | sort | tr '\n' ' ')" - echo "Mentioned Translations: $(shell sed -e '/^\#\#/ d' -e '/^$$/ d' -e 's/# //' LINGUAS | tr ' ' '\n' | sort | tr '\n' ' ')" - echo "Build Translations: $(shell echo "$(LINGUAS)" | tr ' ' '\n' | sort | tr '\n' ' ')" -endif - test "$(shell ls *.po | cut -d'.' -f 1 | sort | tr '\n' ' ')" = \ - "$(shell sed -e '/^\#\#/ d' -e '/^$$/ d' -e 's/# //' LINGUAS | tr ' ' '\n' | sort | tr '\n' ' ')" || \ - ( echo "ERROR: Not all available translations are mentioned in po/LINGUAS!"; exit 100) - -clean: clean/local -clean/local: - rm -f $(MOFILES) $(LANG_POFILES) $(PO)/*.d - -# Include the dependencies that are available -The_DFiles = $(wildcard $(PO)/*.d) -ifneq ($(words $(The_DFiles)),0) -include $(The_DFiles) -endif - -# otherwise the output is completely screwed -.NOTPARALLEL: diff --git a/test/Makefile b/test/Makefile deleted file mode 100644 index 35a0a51e3..000000000 --- a/test/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -*- make -*- - -# This is the top level test makefile for APT, it recurses to each lower -# level make file and runs it with the proper target -ifndef NOISY -.SILENT: -endif - -.PHONY: startup headers library clean veryclean all binary program doc test update-po -startup all clean veryclean binary program dirs test update-po manpages docbook: - $(MAKE) -C libapt $@ - $(MAKE) -C interactive-helper $@ - -# Some very common aliases -.PHONY: maintainer-clean dist-clean distclean pristine sanity -maintainer-clean dist-clean distclean pristine sanity: veryclean diff --git a/test/integration/makefile b/test/integration/makefile deleted file mode 100644 index fb12fe9a8..000000000 --- a/test/integration/makefile +++ /dev/null @@ -1,10 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=test/integration - -# Bring in the default rules -include ../../buildlib/defaults.mak - -.PHONY: test -test: - ./run-tests diff --git a/test/interactive-helper/makefile b/test/interactive-helper/makefile deleted file mode 100644 index 096767c41..000000000 --- a/test/interactive-helper/makefile +++ /dev/null @@ -1,53 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=test/interactive-helper -APT_DOMAIN=none - -# Bring in the default rules -include ../../buildlib/defaults.mak - -# Program for testing methods -PROGRAM=mthdcat -SLIBS = -SOURCE = mthdcat.cc -include $(PROGRAM_H) - -# Program for testing the tar/deb extractor -PROGRAM=testdeb -SLIBS = -lapt-pkg -lapt-inst -LIB_MAKES = apt-pkg/makefile apt-inst/makefile -SOURCE = testdeb.cc -include $(PROGRAM_H) - -# Program for testing tar extraction -PROGRAM=extract-control -SLIBS = -lapt-pkg -lapt-inst -LIB_MAKES = apt-pkg/makefile apt-inst/makefile -SOURCE = extract-control.cc -include $(PROGRAM_H) - -# Program for testing udevcdrom -PROGRAM=test_udevcdrom -SLIBS = -lapt-pkg -LIB_MAKES = apt-pkg/makefile -SOURCE = test_udevcdrom.cc -include $(PROGRAM_H) - -PROGRAM=test_fileutl -SLIBS = -lapt-pkg -LIB_MAKES = apt-pkg/makefile -SOURCE = test_fileutl.cc -include $(PROGRAM_H) - -# Program for checking rpm versions -#PROGRAM=rpmver -#SLIBS = -lapt-pkg -lrpm -#SOURCE = rpmver.cc -#include $(PROGRAM_H) - -# very simple webserver for APT testing -PROGRAM=aptwebserver -SLIBS = -lapt-pkg -lpthread -LIB_MAKES = apt-pkg/makefile -SOURCE = aptwebserver.cc -include $(PROGRAM_H) diff --git a/test/libapt/makefile b/test/libapt/makefile deleted file mode 100644 index 5ff9cf68a..000000000 --- a/test/libapt/makefile +++ /dev/null @@ -1,84 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=test/libapt -BASENAME=_libapt_test -APT_DOMAIN=none - -# Bring in the default rules -include ../../buildlib/defaults.mak - -.PHONY: test -ifeq (file-okay,$(shell $(CC) -I $(BASE)/build/include -M gtest_runner.cc >/dev/null 2>&1 && echo 'file-okay')) -test: $(BIN)/gtest$(BASENAME) - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=$(LIB) $(BIN)/gtest$(BASENAME) - -$(BIN)/gtest$(BASENAME): $(LIB)/gtest.a - -PROGRAM = gtest${BASENAME} -SLIBS = -lapt-pkg -lapt-private -lapt-inst -pthread $(LIB)/gtest.a -LIB_MAKES = apt-pkg/makefile apt-private/makefile apt-inst/makefile -SOURCE = gtest_runner.cc $(wildcard *-helpers.cc *_test.cc) -include $(PROGRAM_H) - - -MKDIRS += $(OBJ) $(LIB) -LOCAL=gtest -SOURCE=gtest-all -gtest-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(SOURCE))) - -# The rest of the file is based on the example found in -# /usr/share/doc/libgtest-dev/examples/make/Makefile -GTEST_DIR = /usr/src/gtest - -# Flags passed to the preprocessor. -# Set Google Test's header directory as a system directory, such that -# the compiler doesn't generate warnings in Google Test headers. -#CPPFLAGS += -isystem $(GTEST_DIR)/include - -# Flags passed to the C++ compiler. -CXXFLAGS += -pthread -# disable some flags for gtest again -CXXFLAGS+= -Wno-missing-declarations -CXXFLAGS+= -Wno-missing-field-initializers -CXXFLAGS+= -Wno-suggest-attribute=pure -Wno-suggest-attribute=const -Wno-suggest-attribute=noreturn -CXXFLAGS+= -Wno-undef - -# All Google Test headers. Usually you shouldn't change this definition. -GTEST_HEADERS = /usr/include/gtest/*.h \ - /usr/include/gtest/internal/*.h - -# House-keeping build targets. -.PHONY: clean/gtest veryclean/gtest -clean: clean/gtest -clean/gtest: - rm -f $(gtest-OBJS) -veryclean: veryclean/gtest -veryclean/gtest: clean/gtest - rm -f $(LIB)/gtest.a - -# Usually you shouldn't tweak such internal variables, indicated by a -# trailing _. -GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) - -# Builds gtest.a -# For simplicity and to avoid depending on Google Test's -# implementation details, the dependencies specified below are -# conservative and not optimized. This is fine as Google Test -# compiles fast and for ordinary users its source rarely changes. -$(gtest-OBJS): $(GTEST_SRCS_) - echo Compiling $@ - $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c -o $@ $(GTEST_DIR)/src/$(notdir $(basename $@)).cc - -$(LIB)/gtest.a: $(OBJ)/gtest-all.o - echo Building static library $@ - -rm -f $@ - $(AR) $(ARFLAGS) $@ $^ - -else -test: - @echo "APT uses Googles C++ testing framework for its unit tests" - @echo "On Debian systems this is available in the 'libgtest-dev' package." - @echo "Please install it before attempting to run the unit tests." - $(CC) -I $(BASE)/build/include -M gtest_runner.cc - exit 100 -endif diff --git a/vendor/makefile b/vendor/makefile deleted file mode 100644 index 966c3d080..000000000 --- a/vendor/makefile +++ /dev/null @@ -1,58 +0,0 @@ -# -*- make -*- -BASE=.. -SUBDIR=vendor - -# Bring in the default rules -include ../buildlib/defaults.mak - -all headers library binary program doc manpages docbook test update-po startup dirs: current -all: all/subdirs -binary: binary/subdirs -doc: doc/subdirs -clean: clean/subdirs -veryclean: veryclean/subdirs -dirs: dirs/subdirs -manpages: manpages/subdirs - -all/subdirs binary/subdirs doc/subdirs dirs/subdirs manpages/subdirs clean/subdirs veryclean/subdirs: - test ! -e current/makefile || $(MAKE) -C current $(patsubst %/subdirs,%,$@) - test ! -e current/makefile.auto || $(MAKE) -C current -f makefile.auto $(patsubst %/subdirs,%,$@) - -current: - rm -f $@ - # search for an exact match to use the correct sources.list example - find -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2 | while read DISTRO; do \ - if dpkg-vendor --is $$DISTRO; then \ - ln -s $$DISTRO $@; \ - break; \ - fi; \ - done - # if we haven't found a specific, look for a deriving - # we do ubuntu and debian last as those are the biggest families - # and would therefore potentially 'shadow' smaller families - # (especially debian as it sorts quiet early) - if ! test -e $@; then \ - find -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2 | while read DISTRO; do \ - if [ "$$DISTRO" = 'debian' -o "$$DISTRO" = 'ubuntu' ]; then continue; fi; \ - if dpkg-vendor --derives-from $$DISTRO; then \ - ln -s $$DISTRO $@; \ - break; \ - fi; \ - done; \ - test -e $@ || \ - (dpkg-vendor --derives-from ubuntu && cp ln -s ubuntu $@ ) || \ - ln -s debian $@; \ - fi - if test ! -e current/makefile; then \ - sed "s#@@VENDOR@@#$(notdir $(shell readlink -f current))#" vendor.makefile > current/makefile.auto; \ - fi - -.PHONY: clean veryclean all binary vendor - -clean: clean/current -clean/current: clean/subdirs - rm -f current/makefile.auto current - -veryclean: veryclean/current -veryclean/current: veryclean/subdirs - rm -f current/makefile.auto current diff --git a/vendor/vendor.makefile b/vendor/vendor.makefile deleted file mode 100644 index 32de3b0d5..000000000 --- a/vendor/vendor.makefile +++ /dev/null @@ -1,28 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=vendor/@@VENDOR@@ - -# Bring in the default rules -include ../../buildlib/defaults.mak - -doc binary manpages: sources.list - -sources.list: sources.list.in ../../doc/apt-verbatim.ent - while read line; do \ - if [ "$${line}" = '&sourceslist-list-format;' ]; then \ - $(BASE)/vendor/getinfo vendor sourceslist-list-format ; \ - else \ - echo "$${line}"; \ - fi \ - done < $< | sed -e 's#&debian-stable-codename;#$(shell ../getinfo debian-stable-codename)#g' \ - -e 's#&debian-oldstable-codename;#$(shell ../getinfo debian-oldstable-codename)#g' \ - -e 's#&debian-testing-codename;#$(shell ../getinfo debian-testing-codename)#g' \ - -e 's#&ubuntu-codename;#$(shell ../getinfo ubuntu-codename)#g' \ - -e 's#¤t-codename;#$(shell ../getinfo current-codename)#g' \ - > $@ - -clean: clean/sources.list -veryclean: clean/sources.list - -clean/sources.list: - rm -f sources.list |