121 lines
3.0 KiB
PHP
121 lines
3.0 KiB
PHP
#############################################################################
|
|
#
|
|
# This is the first phase of building keyboard layouts
|
|
#
|
|
# For each *.txt layout definition (eg: kbdbe.txt kbdbtr.txt etc.):
|
|
# - make the ..\tmp\* directory
|
|
# - generate "sources", "makefile" and "makefile.inc" files in ..\tmp\*
|
|
#
|
|
# Also generate the ..\tmp\dirs files
|
|
#
|
|
# THIS FILE IS INCLUDED BY ..\us_kbd\makefile.inc
|
|
#
|
|
#############################################################################
|
|
|
|
#
|
|
# Layout names (eg: kbdbe)
|
|
#
|
|
TARGETNAMES=$(SOURCES:.c=)
|
|
|
|
#
|
|
# Directories in which layout will be built (eg: ..\tmp\kbdbe)
|
|
#
|
|
TARGETDIRS=$(TARGETNAMES:kbd=..\tmp\kbd)
|
|
|
|
#
|
|
# "sources" files used by BUILD to compile layouts (eg: kbdbe\sources)
|
|
#
|
|
TARGETSOURCEFILES=$(SOURCES:.c=\sources)
|
|
|
|
#############################################################################
|
|
#
|
|
# Build all
|
|
# builds the "dirs" file that steers the compile and link phase
|
|
#
|
|
#############################################################################
|
|
all: always_build_dirs $(TARGETSOURCEFILES:kbd=..\tmp\kbd)
|
|
|
|
#
|
|
# build -clean does this
|
|
#
|
|
clean:
|
|
delnode /q ..\tmp\*
|
|
|
|
#
|
|
# Build the DIRS file in ..\tmp
|
|
# do this always
|
|
#
|
|
always_build_dirs: ..\tmp\dirs
|
|
type << > ..\tmp\dirs
|
|
DIRS=\
|
|
$(TARGETNAMES)
|
|
<<
|
|
|
|
|
|
#
|
|
# If the "sources" or (this) "makefile.inc" file in this directory have
|
|
# changed, make the TARGETDIRS out of date (by deleting)
|
|
#
|
|
..\tmp\dirs: ..\all_kbds\sources ..\us_kbd\sources makefile.inc
|
|
-md ..\tmp
|
|
type << > ..\tmp\dirs
|
|
DIRS=\
|
|
$(TARGETNAMES)
|
|
<<
|
|
delnode /q ..\tmp\kbd*
|
|
|
|
#
|
|
# Dependencies to make sure the "sources" files are built
|
|
# (eg: ..\tmp\kbdbe\sources: ..\tmp\kbdbe)
|
|
#
|
|
$(TARGETSOURCEFILES:kbd=..\tmp\kbd): $$(@D)
|
|
|
|
|
|
#
|
|
# build the SOURCES, MAKEFILE and MAKEFILE.INC in each ..\tmp\kbd*
|
|
# The target of this rule is a directory, which is a problem, since the
|
|
# timestamp of these can only change if the directory is deleted and
|
|
# recreated: hence the delnode /q ..\tmp\kbd* line is the ..\tmp\dirs
|
|
# rule (above). This deletes the _objects.mac files so you have to run
|
|
# build twice is either the sources or makefile.inc files are updated.
|
|
# To get around this by changing the
|
|
#
|
|
$(TARGETDIRS): sources ..\all_kbds\makefile.inc
|
|
-md $@
|
|
copy ..\all_kbds\makefile.tpl $@\makefile
|
|
type << > $@\makefile.inc
|
|
$(@B).c $(@B).h $(@B).rc $(@B).def: ..\..\all_kbds\$(@B).txt
|
|
kbdtool ..\..\all_kbds\$(@B).txt
|
|
<<
|
|
type << > $@\sources._xx
|
|
^!IF 0
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
^!ENDIF
|
|
|
|
NOLINK=
|
|
MAJORCOMP=user
|
|
MINORCOMP=$(@B)
|
|
TARGETNAME=$(@B)
|
|
TARGETPATH=obj
|
|
TARGETTYPE=DYNLINK
|
|
TARGETLIBS=
|
|
INCLUDES=..\..\..\inc
|
|
SOURCES=$(@B).c $(@B).rc
|
|
C_DEFINES=
|
|
UMTYPE=nt
|
|
UMTEST=
|
|
UMAPPL=
|
|
UMBASE=0x1000000
|
|
UMLIBS=
|
|
^!if $$(IA64)
|
|
SECTION_ALIGNMENT=0x4000
|
|
LINKER_FLAGS = -merge:.edata=.data -merge:.srdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re
|
|
^!else
|
|
LINKER_FLAGS = -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re
|
|
^!endif
|
|
|
|
NTTARGETFILE0=$(@B).h $(@B).rc $(@B).def
|
|
<<
|
|
sed "s/^\^//" $@\sources._xx > $@\sources
|
|
del /f $@\sources._xx
|