cobol.serial = cobol1$(exeext)
.PHONY: cobol
-BINCLUDE ?= ./gcc
-LIB_INCLUDE ?= $(srcdir)/../libgcobol
LIB_SOURCE ?= $(srcdir)/../libgcobol
-#
-# At this point, as of 2022-10-21, CPPFLAGS is an empty string and can be
-# altered. CFLAGS and CXXFLAGS are being established upstream, and thus
-# cannot, at this point, be changed.
-#
-# Note further that we are producing only a 64-bit version of libgcobol.so, so
-# it is safe to hard-code the lib64 location. This obviously has to match the
-# installation code in libgcobol/Makefile.in
-#
-CPPFLAGS = \
- -std=c++14 \
- -I$(BINCLUDE) \
- -I$(LIB_INCLUDE) \
- -DEXEC_LIB=\"$(prefix)/lib64\" \
- $(END)
-
YFLAGS = -Werror -Wmidrule-values -Wno-yacc \
--debug --verbose
# There is source code in libgcobol/charmaps.cc and
# libgcobol/valconv.cc that needs to be compiled into both libgcobol
# and cobol1. We copy those two source code files from libgcobol to
-# here to avoid the nightmare of one file appearing in more than one
-# place. For simplicity, we make those compilations dependent on all
-# of the libgcobol/*.h files, which might lead to the occasional
+# build/gcc/cobol to avoid the nightmare of one file appearing in more
+# than one place. For simplicity, we make those compilations dependent
+# on all of the libgcobol/*.h files, which might lead to the occasional
# unnecessary compilation. The impact of that is negligible.
#
+# Various #includes in the files copied from gcc/libgcobol need to be modified
+# so that the .h files can be found.
+
cobol/charmaps.cc: $(LIB_SOURCE)/charmaps.cc
cp $^ $@
+ sed -i "s|\"ec[.]h\"|\"$(LIB_SOURCE)/ec.h\"|g" $@
+ sed -i "s|\"common-defs[.]h\"|\"$(LIB_SOURCE)/common-defs.h\"|g" $@
+ sed -i "s|\"io[.]h\"|\"$(LIB_SOURCE)/io.h\"|g" $@
+ sed -i "s|\"gcobolio[.]h\"|\"$(LIB_SOURCE)/gcobolio.h\"|g" $@
+ sed -i "s|\"libgcobol[.]h\"|\"$(LIB_SOURCE)/libgcobol.h\"|g" $@
+ sed -i "s|\"gfileio[.]h\"|\"$(LIB_SOURCE)/gfileio.h\"|g" $@
+ sed -i "s|\"charmaps[.]h\"|\"$(LIB_SOURCE)/charmaps.h\"|g" $@
+ sed -i "s|\"valconv[.]h\"|\"$(LIB_SOURCE)/valconv.h\"|g" $@
+ sed -i "s|\"exceptl[.]h\"|\"$(LIB_SOURCE)/exceptl.h\"|g" $@
cobol/valconv.cc: $(LIB_SOURCE)/valconv.cc
cp $^ $@
+ sed -i "s|\"ec[.]h\"|\"$(LIB_SOURCE)/ec.h\"|g" $@
+ sed -i "s|\"common-defs[.]h\"|\"$(LIB_SOURCE)/common-defs.h\"|g" $@
+ sed -i "s|\"io[.]h\"|\"$(LIB_SOURCE)/io.h\"|g" $@
+ sed -i "s|\"gcobolio[.]h\"|\"$(LIB_SOURCE)/gcobolio.h\"|g" $@
+ sed -i "s|\"libgcobol[.]h\"|\"$(LIB_SOURCE)/libgcobol.h\"|g" $@
+ sed -i "s|\"gfileio[.]h\"|\"$(LIB_SOURCE)/gfileio.h\"|g" $@
+ sed -i "s|\"charmaps[.]h\"|\"$(LIB_SOURCE)/charmaps.h\"|g" $@
+ sed -i "s|\"valconv[.]h\"|\"$(LIB_SOURCE)/valconv.h\"|g" $@
+ sed -i "s|\"exceptl[.]h\"|\"$(LIB_SOURCE)/exceptl.h\"|g" $@
LIB_SOURCE_H=$(wildcard $(LIB_SOURCE)/*.h)
%{
#include "cobol-system.h"
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "copybook.h"
-#include "exceptl.h"
+#include "../../libgcobol/exceptl.h"
#include "exceptg.h"
#define COUNT_OF(X) (sizeof(X) / sizeof(X[0]))
#include "target.h"
#include "stringpool.h"
#define HOWEVER_GCC_DEFINES_TREE 1
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
-#include "exceptl.h"
+#include "../../libgcobol/exceptl.h"
#include "exceptg.h"
#include "util.h"
#include "gengen.h" // This has some GTY(()) markers
#include "coretypes.h"
#include "tree.h"
#define HOWEVER_GCC_DEFINES_TREE 1
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
#include "gengen.h"
-#include "exceptl.h"
+#include "../../libgcobol/exceptl.h"
#include "util.h"
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
* section is PERFORMed, and control branches to the end of this
* section, and thence back to the statement it came from.
*/
-#include "io.h"
+#include "../../libgcobol/io.h"
size_t current_file_index();
file_status_t current_file_handled_status();
if( need_libgcobol )
{
- if( 0 != strcmp(EXEC_LIB, "/usr/lib") )
- {
- append_option(OPT_L, EXEC_LIB, 1);
- }
+#ifdef EXEC_LIB
+ append_option(OPT_L, EXEC_LIB, 1);
+#endif
add_arg_lib(COBOL_LIBRARY, static_libgcobol);
}
if( need_libmath )
#define HOWEVER_GCC_DEFINES_TREE 1
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "gengen.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
#include "genutil.h"
#include "genmath.h"
#include "structs.h"
-#include "gcobolio.h"
-#include "libgcobol.h"
-#include "charmaps.h"
-#include "valconv.h"
+#include "../../libgcobol/gcobolio.h"
+#include "../../libgcobol/libgcobol.h"
+#include "../../libgcobol/charmaps.h"
+#include "../../libgcobol/valconv.h"
#include "show_parse.h"
extern int yylineno;
#include "function.h"
#include "fold-const.h"
#define HOWEVER_GCC_DEFINES_TREE 1
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "coretypes.h"
#include "tree.h"
#define HOWEVER_GCC_DEFINES_TREE 1
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
#include "genutil.h"
#include "gengen.h"
#include "structs.h"
-#include "gcobolio.h"
-#include "libgcobol.h"
+#include "../../libgcobol/gcobolio.h"
+#include "../../libgcobol/libgcobol.h"
#include "show_parse.h"
void
#include "coretypes.h"
#include "tree.h"
#define HOWEVER_GCC_DEFINES_TREE 1
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "gengen.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
#include "genutil.h"
#include "structs.h"
-#include "gcobolio.h"
-#include "libgcobol.h"
-#include "charmaps.h"
+#include "../../libgcobol/gcobolio.h"
+#include "../../libgcobol/libgcobol.h"
+#include "../../libgcobol/charmaps.h"
#include "show_parse.h"
-#include "exceptl.h"
+#include "../../libgcobol/exceptl.h"
#include "exceptg.h"
bool internal_codeset_is_ebcdic() { return gcobol_feature_internal_ebcdic(); }
#include <cmath>
#include <algorithm>
#include <map>
- #include "io.h"
- #include "ec.h"
+ #include "../../libgcobol/io.h"
+ #include "../../libgcobol/ec.h"
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
bool set_debug(bool);
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "inspect.h"
}
#include <fstream> // Before cobol-system because it uses poisoned functions
#include "cobol-system.h"
#include "cdfval.h"
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
-#include "exceptl.h"
+#include "../../libgcobol/exceptl.h"
#include "exceptg.h"
#include "parse_ante.h"
%}
#include <fstream> // Before cobol-system because it uses poisoned functions
#include "cobol-system.h"
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "copybook.h"
#include "scan_ante.h"
#include "lexio.h"
-#include "exceptl.h"
+#include "../../libgcobol/exceptl.h"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsign-compare"
#include "coretypes.h"
#include "tree.h"
#define HOWEVER_GCC_DEFINES_TREE 1
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "cobol-system.h"
#include <search.h>
#include <iconv.h>
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
#pragma GCC diagnostic ignored "-Wunused-result"
#include "cobol-system.h"
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "util.h"
#include "cbldiag.h"
#include "symbols.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
extern int yydebug;
#include "lexio.h"
#define HOWEVER_GCC_DEFINES_TREE
-#include "ec.h"
-#include "common-defs.h"
+#include "../../libgcobol/ec.h"
+#include "../../libgcobol/common-defs.h"
#include "symbols.h"
#include "inspect.h"
-#include "io.h"
+#include "../../libgcobol/io.h"
#include "genapi.h"
#pragma GCC diagnostic ignored "-Wunused-result"