1/* Copyright (C) 2021 Free Software Foundation, Inc.
2   Contributed by Oracle.
3
4   This file is part of GNU Binutils.
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 3, or (at your option)
9   any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; if not, write to the Free Software
18   Foundation, 51 Franklin Street - Fifth Floor, Boston,
19   MA 02110-1301, USA.  */
20
21#ifndef _GP_ARCHIVE_H_
22#define _GP_ARCHIVE_H_
23
24#include <regex.h>
25#include "DbeApplication.h"
26
27class ArchiveExp;
28class LoadObject;
29template <class ITEM> class Vector;
30
31enum
32{
33  ARCH_NOTHING       = 0,
34  ARCH_EXE_ONLY      = 1,
35  ARCH_USED_EXE_ONLY = 2,
36  ARCH_USED_SRC_ONLY = 4,
37  ARCH_ALL           = 8
38};
39
40class er_archive : public DbeApplication
41{
42public:
43  er_archive (int argc, char *argv[]);
44  ~er_archive ();
45  void start (int argc, char *argv[]);
46
47private:
48  void usage ();
49  int check_args (int argc, char *argv[]);
50  int clean_old_archive (char *expname, ArchiveExp *founder_exp);
51  int mask_is_on (const char *str);
52  void check_env_var ();
53  Vector <LoadObject*> *get_loadObjs ();
54
55  Vector<regex_t *> *mask;  // -m <regexp>
56  int s_option;             // -s NO|ALL|USED
57  char *common_archive_dir; // -d // absolute path to common archive
58  int force;                // -F
59  int quiet;                // -q
60  int descendant;           // -n
61  int use_relative_path;    // -r
62};
63
64#endif