Subversion Repositories DevTools

Rev

Rev 7299 | Blame | Last modification | View Log | RSS feed

# -*- mode: mak -*-
###############################################################################
# File:         PLATFORM/amx.def
# Contents:     AMX platform defines
#
# Revision History:
#   16/08/99    APY Created
#   16/11/01    APY Build env +v2.0 support, appended ';' to rules
#
# Note:
#   The following have to be defined in a platform specific manner
#   below and come from one of the platform configuration makefiles.
#
#       amx_target      The name that AMX knows the processor by.
#                       This actually names directory at the root
#                       of the amx directory tree .. nominally one
#                       of `amx68k' or `amx386'.
#
#       amx_filesystem  The optional name that AMX knows the 
#                       filesystem by. This actually names directory
#                       at the root of the amx/fs directory tree .. 
#                       nominally one of `afs68k' or `afs386'.
#
#       amx_toolset     The suffix AMX uses for the build tools
#                       nominally `TOOLWC' or `TOOLMR'.
#
#       amx_name        The prefix of the name of AMX's configuration
#                       and library files (normally the AMX part number)
#
#       amx_fsname      The prefix of the name of AMX/FS configuration
#                       and library files (normally the AMX part number)
#
#       amx_calling     The tail end of the AMX library name.
#                       Unfortunately even though the amx librarys
#                       live in different directorys for different
#                       targets they also have different names.
#
# From the above we define....
#
#       amx_dir         Root of the amx platform/compiler specific
#                       tree.
#
#       amx_cfgdir      Configuration
#
#       amx_incdir      Include directory
#
#       amx_objdir      Object directory
#
#       amx_libdir      Library directory
#
###############################################################################

.PHONY:         amx
amx:
        @if [ -z "$(AMX)" ]; then echo 'AMX env var not set'; exit 2; fi

amx             = $(subst \\,/,$(strip $(AMX)))
amx_bin         = $(amx)/$(strip $(amx_target))/cfg
amx_bin2        = $(amx)/$(strip $(amx_target))/cfgbldw

amx_dir         = $(amx)/$(strip $(amx_target))/$(strip $(amx_toolset))
amx_cfgdir      = $(amx_dir)/cfg
amx_objdir      = $(amx_dir)/obj
amx_libdir      = $(amx_dir)/lib
amx_incdir      = $(amx_dir)/def

ifdef amx_filesystem
amxfs_dir       = $(amx)/$(strip $(amx_filesystem))/$(strip $(amx_toolset))
amxfs_cfgdir    = $(amxfs_dir)/cfg
amxfs_objdir    = $(amxfs_dir)/obj
amxfs_libdir    = $(amxfs_dir)/lib
amxfs_incdir    = $(amxfs_dir)/def
endif

ifeq "$(findstring $(PATH),$(amx))" ""
PATH            := $(PATH);$(amx_bin);$(amx_bin2)
endif

TS_MASM_AS      = 1

#

cc_defines      += AMX_$(amx_name)
cc_includes     += $(amx_incdir)
as_includes     += $(amx_incdir)
ld_libpath      += $(amx_libdir)
ifdef amx_filesystem
cc_defines      += AMXFS_$(amx_fsname)
cc_includes     += $(amxfs_incdir)    
as_includes     += $(amxfs_incdir)
ld_libpath      += $(amxfs_libdir)
endif

define amx_xxx
        @$(echo) '[Building $@]'
        @$(cmdfile) -ko$@ '\
/* AMX Linker funny stuff,\n\
 *      Force linker ordering requirements of AMX/EP and AMX/ET\n\
 *      whilst allowing main (and the startup code) to be placed\n\
 *      within a the library "eosas".\n\
 */\n\
extern void main(void);\n\
void   (*__main__) = main;\n'
endef

ifdef amx_filesystem
define amx_scf
        @$(echo) '[Building - Software Config Module $@ "$<"]'
        @$(amx_name)CG $< $(amx_cfgdir)/$(amx_name)CG.CT $@1 ;
        @$(amx_name)CG $< $(amxfs_cfgdir)/$(amx_fsname)CG.CT $@2 ;
        @cat $@1 $@2 > $@; rm $@1 $@2
endef
else
define amx_scf
        @$(echo) '[Building - Software Config Module $@ "$<"]'
        @$(amx_name)CG $< $(amx_cfgdir)/$(amx_name)CG.CT  $@;
endef
endif

define amx_tcf
        @$(echo) '[Building - Target Config Module $@ "$<"]'
        @$(amx_name)CG $< $(amx_cfgdir)/$(amx_name)HDW.CT $@;
endef

define amx_pcf
        @$(echo) '[Building - PC Config Module $@ "$<"]'
        @$(amx_name)CG $< $(amx_cfgdir)/$(amx_name)PCG.CT $@;
endef

define amx_int
        @$(echo) '[Building - ISP Module $@ "$<"]'
        @$(amx_name)CG $< $(amx_cfgdir)/$(amx_name)INT.CT $@;
endef

define amx_icf
        @$(echo) '[Building - Insight config Module' $@ "$<"]'
endef

#