summaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
authorEric Andersen2001-10-24 05:00:29 +0000
committerEric Andersen2001-10-24 05:00:29 +0000
commitbdfd0d78bc44e73d693510e70087857785b3b521 (patch)
tree153a573095afac8d8d0ea857759ecabd77fb28b7 /archival
parent9260fc5552a3ee52eb95823aa6689d52a1ffd33c (diff)
downloadbusybox-bdfd0d78bc44e73d693510e70087857785b3b521.zip
busybox-bdfd0d78bc44e73d693510e70087857785b3b521.tar.gz
Major rework of the directory structure and the entire build system.
-Erik
Diffstat (limited to 'archival')
-rw-r--r--archival/Makefile43
-rw-r--r--archival/config.in19
-rw-r--r--archival/gzip.c2
-rw-r--r--archival/tar.c32
4 files changed, 79 insertions, 17 deletions
diff --git a/archival/Makefile b/archival/Makefile
new file mode 100644
index 0000000..66c2d0b
--- /dev/null
+++ b/archival/Makefile
@@ -0,0 +1,43 @@
+# Makefile for busybox
+#
+# Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+TOPDIR :=..
+L_TARGET := archival.a
+
+obj-y :=
+obj-n :=
+obj- :=
+
+obj-$(CONFIG_AR) += ar.o
+obj-$(CONFIG_BUNZIP2) += bunzip2.o
+obj-$(CONFIG_CPIO) += cpio.o
+obj-$(CONFIG_DPKG) += dpkg.o
+obj-$(CONFIG_DPKG_DEB) += dpkg_deb.o
+obj-$(CONFIG_GUNZIP) += gunzip.o
+obj-$(CONFIG_GZIP) += gzip.o
+obj-$(CONFIG_RPMUNPACK) += rpm2cpio.o
+obj-$(CONFIG_TAR) += tar.o
+
+
+# Hand off to toplevel Rules.mak
+include $(TOPDIR)/Rules.mak
+
+clean:
+ rm -f $(L_TARGET) *.o core
+
diff --git a/archival/config.in b/archival/config.in
new file mode 100644
index 0000000..c195f24
--- /dev/null
+++ b/archival/config.in
@@ -0,0 +1,19 @@
+#
+# For a description of the syntax of this configuration file,
+# see scripts/kbuild/config-language.txt.
+#
+
+mainmenu_option next_comment
+comment 'Archival Utilities'
+
+bool 'ar' CONFIG_AR
+bool 'bunzip2' CONFIG_BUNZIP2
+bool 'cpio' CONFIG_CPIO
+bool 'dpkg' CONFIG_DPKG
+bool 'dpkg_deb' CONFIG_DPKG_DEB
+bool 'gunzip' CONFIG_GUNZIP
+bool 'gzip' CONFIG_GZIP
+bool 'rpm2cpio' CONFIG_RPM2CPIO
+bool 'tar' CONFIG_TAR
+endmenu
+
diff --git a/archival/gzip.c b/archival/gzip.c
index 5c86c10..df665c1 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -1231,7 +1231,7 @@ int gzip_main(int argc, char **argv)
break;
case 'q':
break;
-#ifdef BB_GUNZIP
+#ifdef CONFIG_GUNZIP
case 'd':
optind = 1;
return gunzip_main(argc, argv);
diff --git a/archival/tar.c b/archival/tar.c
index f7a3da6..9e38eea 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -9,8 +9,8 @@
* ground up. It still has remnents of the old code lying about, but it is
* very different now (i.e., cleaner, less global variables, etc.)
*
- * Copyright (C) 1999,2000,2001 by Lineo, inc.
- * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ * Copyright (C) 1999,2000 by Lineo, inc. and Erik Andersen
+ * Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
*
* Based in part in the tar implementation in sash
* Copyright (c) 1999 by David I. Bell
@@ -49,7 +49,7 @@
#include <errno.h>
#include "busybox.h"
-#ifdef BB_FEATURE_TAR_CREATE
+#ifdef CONFIG_FEATURE_TAR_CREATE
/* Tar file constants */
# define TAR_MAGIC "ustar" /* ustar and a null */
@@ -395,11 +395,11 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf, void*
if (header_name[0] == '\0')
return TRUE;
-# if defined BB_FEATURE_TAR_EXCLUDE
+# if defined CONFIG_FEATURE_TAR_EXCLUDE
if (exclude_file(tbInfo->excludeList, header_name)) {
return SKIP;
}
-# endif //BB_FEATURE_TAR_EXCLUDE
+# endif //CONFIG_FEATURE_TAR_EXCLUDE
if (writeTarHeader(tbInfo, header_name, fileName, statbuf)==FALSE) {
return( FALSE);
@@ -527,7 +527,7 @@ void append_file_list_to_list(char *filename, char ***name_list, int *num_of_ent
fclose(src_stream);
}
-#ifdef BB_FEATURE_TAR_EXCLUDE
+#ifdef CONFIG_FEATURE_TAR_EXCLUDE
/*
* Create a list of names that are in the include list AND NOT in the exclude lists
*/
@@ -626,7 +626,7 @@ int tar_main(int argc, char **argv)
/* These are optional */
/* Exclude or Include files listed in <filename>*/
-#ifdef BB_FEATURE_TAR_EXCLUDE
+#ifdef CONFIG_FEATURE_TAR_EXCLUDE
case 'X':
append_file_list_to_list(optarg, &exclude_list, &exclude_list_count);
break;
@@ -660,7 +660,7 @@ int tar_main(int argc, char **argv)
}
extract_function |= extract_list;
break;
-#ifdef BB_FEATURE_TAR_GZIP
+#ifdef CONFIG_FEATURE_TAR_GZIP
case 'z':
untar_funct |= untar_unzip;
break;
@@ -698,43 +698,43 @@ int tar_main(int argc, char **argv)
} else {
src_stream = stdin;
}
-#ifdef BB_FEATURE_TAR_GZIP
+#ifdef CONFIG_FEATURE_TAR_GZIP
/* Get a binary tree of all the tar file headers */
if (untar_funct & untar_unzip) {
uncompressed_stream = gz_open(src_stream, &gunzip_pid);
} else
-#endif // BB_FEATURE_TAR_GZIP
+#endif // CONFIG_FEATURE_TAR_GZIP
uncompressed_stream = src_stream;
/* extract or list archive */
unarchive(uncompressed_stream, stdout, &get_header_tar, extract_function, dst_prefix, include_list, exclude_list);
fclose(uncompressed_stream);
}
-#ifdef BB_FEATURE_TAR_CREATE
+#ifdef CONFIG_FEATURE_TAR_CREATE
/* create an archive */
else if (untar_funct & untar_create) {
int verboseFlag = FALSE;
-#ifdef BB_FEATURE_TAR_GZIP
+#ifdef CONFIG_FEATURE_TAR_GZIP
if (untar_funct && untar_unzip) {
error_msg_and_die("Creation of compressed tarfile not internally support by tar, pipe to busybox gunzip");
}
-#endif // BB_FEATURE_TAR_GZIP
+#endif // CONFIG_FEATURE_TAR_GZIP
if (extract_function & extract_verbose_list) {
verboseFlag = TRUE;
}
writeTarFile(src_filename, verboseFlag, &argv[argc - 1], include_list);
}
-#endif // BB_FEATURE_TAR_CREATE
+#endif // CONFIG_FEATURE_TAR_CREATE
/* Cleanups */
-#ifdef BB_FEATURE_TAR_GZIP
+#ifdef CONFIG_FEATURE_TAR_GZIP
if (untar_funct & untar_unzip) {
fclose(src_stream);
close(gz_fd);
gz_close(gunzip_pid);
}
-#endif // BB_FEATURE_TAR_GZIP
+#endif // CONFIG_FEATURE_TAR_GZIP
if (src_filename) {
free(src_filename);
}