⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 freebasic 编译器,编译型的BASIC
💻
字号:
# Makefile.  Generated from Makefile.in by configure.
# Makefile for the FreeBASIC Compiler.
# Run 'configure' to generate Makefile from Makefile.in

##################################################################



AR = ar
ARFLAGS = cru
ACLOCAL = g:/FreeBASIC/src/config/missing aclocal
AUTOCONF = g:/FreeBASIC/src/config/missing autoconf
AUTOHEADER = @AUTOHEADER@
CC = gcc
CFLAGS = -O2
DEFS = -DPACKAGE_NAME=\"fbc\" -DPACKAGE_TARNAME=\"fbc\" -DPACKAGE_VERSION=\"0.18.1\" -DPACKAGE_STRING=\"fbc\ 0.18.1\" -DPACKAGE_BUGREPORT=\"http://sourceforge.net/projects/fbc\" -DTARGET_DOS=1 -DHOST_DOS=1 -DTARGET_X86=1 
WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANTIC@ @WERROR@
CPP = @CPP@
CPPFLAGS = 
EXEEXT = .exe
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
LDFLAGS = 
LIBICONV = @LIBICONV@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
SHELL = /dev/env/DJDIR/bin/sh.exe
VPATH = ../..

datadir = ${prefix}/share
exec_prefix = /dev/env/DJDIR
libdir = ${exec_prefix}/lib
localedir = $(datadir)/locale
prefix = /dev/env/DJDIR
srcdir = ../..
top_builddir = .

FBC = 

# !!!FIXME!!! -arch can't be assumed, using target_cpu will give
#             "686" for example, making fbc to fail in non mmx-cpu's
FBC_CFLAGS = -e -c -i $(srcdir) -target dos -arch 486

FBC_LFLAGS := -v -target dos

ifdef DEBUG
    FBC_CFLAGS += -g
    FBC_LFLAGS += -g
endif

ifdef EXTRAERR
    FBC_CFLAGS += -exx
endif

ifeq (objinfo,objinfo)
    FBC_LIBS = -l bfd -l iberty
endif

##################################################################

# !!!FIXME!!! can't use $(DEFS) directly because FB doesn't accept
#             cmd-line options in GCC's format

ifeq (dos,dos)
	FBC_OSDEPSRCS := fbc_dos.bas
	DEFS := -d TARGET_DOS -d TARGET_X86
	FBC_LIBS += -l intl
endif

ifeq (dos,linux)
	FBC_OSDEPSRCS := fbc_linux.bas fbc_freebsd.bas
	DEFS := -d TARGET_LINUX -d TARGET_X86 -d CROSSCOMP_FREEBSD
endif

ifeq (dos,cygwin)
	FBC_OSDEPSRCS := fbc_cyg.bas
	DEFS := -d TARGET_CYGWIN -d TARGET_X86
	FBC_LIBS += -l intl
endif

ifeq (dos,win32)
	FBC_OSDEPSRCS := fbc_win32.bas fbc_dos.bas fbc_linux.bas fbc_xbox.bas fbc_cyg.bas
	DEFS := -d TARGET_WIN32 -d TARGET_X86 -d CROSSCOMP_DOS -d CROSSCOMP_XBOX -d CROSSCOMP_LINUX -d CROSSCOMP_CYGWIN
	FBC_LFLAGS += -t 2048
	FBC_LIBS += -l intl
endif

ifeq (dos,xbox)
	FBC_OSDEPSRCS := fbc_xbox.bas
	DEFS := -d TARGET_XBOX -d TARGET_X86
	FBC_LIBS += -l intl
endif

ifeq (dos,freebsd)
	FBC_OSDEPSRCS := fbc_freebsd.bas fbc_linux.bas
	DEFS := -d TARGET_FREEBSD -d TARGET_X86 -d CROSSCOMP_LINUX
	FBC_LIBS += -l intl
endif

ifneq (objinfo,objinfo)
    DEFS += -d DISABLE_OBJINFO
endif

##################################################################

FBC_MAIN := fbc.bas

FBC_COMP = $(subst .bas,_new$(EXEEXT),$(FBC_MAIN))

FBC_SRCS := $(FBC_MAIN)

FBC_SRCS += ast.bas ast-node-addr.bas ast-node-assign.bas ast-node-bop.bas ast-node-mem.bas
FBC_SRCS += ast-node-branch.bas ast-node-check.bas ast-node-const.bas ast-node-conv.bas
FBC_SRCS += ast-node-data.bas ast-node-decl.bas ast-node-enum.bas ast-node-call.bas
FBC_SRCS += ast-node-arg.bas ast-node-idx.bas ast-node-iif.bas ast-node-link.bas
FBC_SRCS += ast-node-load.bas ast-node-misc.bas ast-node-ptr.bas ast-node-scope.bas
FBC_SRCS += ast-node-stack.bas ast-node-uop.bas ast-node-var.bas ast-node-field.bas
FBC_SRCS += ast-node-typeini.bas ast-optimize.bas ast-node-proc.bas ast-node-namespace.bas
FBC_SRCS += ast-helper.bas ast-misc.bas

FBC_SRCS += dstr.bas edbg_stab.bas emit.bas emit_x86.bas fb.bas fb-main.bas 

ifeq (objinfo,objinfo)
FBC_SRCS += fb-objinfo.bas
endif

FBC_SRCS += error.bas hlp.bas hlp-str.bas

FBC_SRCS += ir.bas ir-tac.bas ir-hlc.bas

FBC_SRCS += hash.bas clist.bas flist.bas list.bas stack.bas pool.bas

FBC_SRCS += lex.bas lex-utf.bas pp.bas pp-cond.bas pp-define.bas pp-pragma.bas

FBC_SRCS += parser-assignment.bas parser-comment.bas parser-decl-const.bas
FBC_SRCS += parser-decl-enum.bas parser-decl-option.bas parser-decl-proc-params.bas
FBC_SRCS += parser-decl-proc.bas parser-decl-struct.bas parser-decl-symb-init.bas
FBC_SRCS += parser-decl-symbtype.bas parser-decl-typedef.bas parser-decl-var.bas
FBC_SRCS += parser-decl.bas parser-identifier.bas parser-inlineasm.bas parser-label.bas
FBC_SRCS += parser-proccall-args.bas parser-proccall.bas parser-statement.bas
FBC_SRCS += parser-toplevel.bas parser-compound.bas parser-compound-do.bas
FBC_SRCS += parser-compound-for.bas parser-compound-if.bas parser-compound-scope.bas
FBC_SRCS += parser-compound-select.bas parser-compound-namespace.bas
FBC_SRCS += parser-compound-select-const.bas parser-compound-while.bas
FBC_SRCS += parser-compound-extern.bas parser-compound-with.bas
FBC_SRCS += parser-proc.bas parser-quirk-array.bas parser-decl-def.bas
FBC_SRCS += parser-quirk-casting.bas parser-quirk-console.bas parser-quirk-data.bas
FBC_SRCS += parser-quirk-error.bas parser-quirk-file.bas parser-quirk-goto-return.bas
FBC_SRCS += parser-quirk-iif.bas parser-quirk-math.bas parser-quirk-on.bas
FBC_SRCS += parser-quirk-peekpoke.bas parser-quirk-string.bas parser-quirk-vafirst.bas
FBC_SRCS += parser-quirk-mem.bas parser-quirk.bas parser-quirk-gfx.bas parser-expr-atom.bas
FBC_SRCS += parser-expr-binary.bas parser-expr-constant.bas parser-expr-function.bas
FBC_SRCS += parser-expr-unary.bas parser-expr-variable.bas

FBC_SRCS += reg.bas

FBC_SRCS += rtl.bas rtl-array.bas rtl-console.bas rtl-data.bas rtl-error.bas
FBC_SRCS += rtl-file.bas rtl-gfx.bas rtl-macro.bas rtl-math.bas rtl-mem.bas
FBC_SRCS += rtl-print.bas rtl-profile.bas rtl-string.bas rtl-system.bas

FBC_SRCS += symb.bas symb-const.bas symb-data.bas symb-define.bas symb-enum.bas
FBC_SRCS += symb-keyword.bas symb-label.bas symb-lib.bas symb-proc.bas symb-scope.bas
FBC_SRCS += symb-struct.bas symb-typedef.bas symb-var.bas symb-bitfield.bas
FBC_SRCS += symb-namespace.bas symb-mangling.bas symb-comp.bas

FBC_SRCS += $(FBC_OSDEPSRCS)

FBC_OBJS := $(patsubst %.bas,%.o,$(FBC_SRCS))
FBC_HEADERS := $(wildcard ../../inc/*.bi)

FBC_CFLAGS += -m $(subst .bas,,$(FBC_MAIN))

##################################################################

all: $(FBC_COMP)

.SUFFIXES:
.SUFFIXES: .bas $(EXEEXT)

%.o : %.bas $(FBC_HEADERS)
	$(FBC) $(FBC_CFLAGS) $(DEFS) $< -o $@

$(FBC_COMP) : $(FBC_OBJS)
	$(FBC) $(FBC_LFLAGS) $(DEFS) $(FBC_OBJS) $(FBC_LIBS) -x $@


##################################################################

# Rules to rebuild the configuration

Makefile: $(srcdir)/Makefile.in config.status
	$(SHELL) ./config.status Makefile

config.status: $(srcdir)/configure
	$(SHELL) ./config.status --recheck

$(srcdir)/configure: #n $(srcdir)/aclocal.m4
	cd $(srcdir) && $(AUTOCONF)

$(srcdir)/aclocal.m4: #n $(srcdir)/../config/acx.m4 \
	$(srcdir)/../config/warnings.m4 \
	$(srcdir)/configure.ac
	cd $(srcdir) && $(ACLOCAL) -I ../config

stamp-h1: config.status
	-rm -f stamp-h1
	$(SHELL) ./config.status

# Other miscellaneous targets.

mostlyclean:
	-rm -rf $(FBC_OBJS)

clean: mostlyclean
	-rm -rf makedepend$(EXEEXT) $(FBC_COMP) $(srcdir)/autom4te.cache

distclean: clean
	-rm -f stamp-h1 config.status config.cache config.log \
	  configure.lineno configure.status.lineno Makefile localedir.h \
	  localedir.hs

maintainer-clean: distclean
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
	-rm -f $(srcdir)/configure $(srcdir)/aclocal.m4

check:
installcheck:
dvi:
html:
info:
install-info:
install-man:
install:

.PHONY: installdirs install install-strip mostlyclean clean distclean \
  maintainer-clean check installcheck dvi html info install-info \
  install-man update-po

COMPILE = $(CC) $(DEFS) $(ALL_CFLAGS) -c

# Implicit rules

.c.o:
	$(COMPILE) $<

.NOEXPORT:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -