diff options
Diffstat (limited to 'util/Make.mk')
-rw-r--r-- | util/Make.mk | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/util/Make.mk b/util/Make.mk new file mode 100644 index 0000000..0f45625 --- /dev/null +++ b/util/Make.mk @@ -0,0 +1,59 @@ +# +# Makefile fragment for the utility programs +# +# THIS IS NOT A COMPLETE Makefile - run GNU make in the top-level +# directory, and this will be pulled in automatically. +# + +################### +# FILES SECTION # +################### + +UTIL_BIN := BuildImage Offsets mkblob listblob + +################### +# RULES SECTION # +################### + +# how to make everything +util: $(UTIL_BIN) + +# +# Special rules for creating the utility programs. These are required +# because we don't want to use the same options as for the standalone +# binaries - we want these to be compiled as "normal" programs. +# + +BuildImage: util/BuildImage.c + @mkdir -p $(@D) + $(CC) -std=c99 -ggdb -o BuildImage util/BuildImage.c + +mkblob: util/mkblob.c + @mkdir -p $(@D) + $(CC) -std=c99 -ggdb -o mkblob util/mkblob.c + +listblob: util/listblob.c + @mkdir -p $(@D) + $(CC) -std=c99 -ggdb -o listblob util/listblob.c + +# +# Offsets is compiled using -mx32 to force a 32-bit execution environment +# for a program that runs under a 64-bit operating system. This ensures +# that pointers and long ints are 32 bits rather than 64 bits, which is +# critical to correctly determining the size of types and byte offsets for +# fields in structs. We also compile with "-fno-builtin" to avoid signature +# clashes between declarations in our system and function declarations +# built into the C compiler. +# +# If compiled with the CPP macro CREATE_HEADER_FILE defined, Offsets +# accepts a command-line argument "-h". This causes it to write its +# output as a standard C header file into a file named "include/offsets.h" +# where it can be included into other source files (e.g., to provide +# sizes of structs in C and assembly, or to provide byte offsets into +# structures for use in assembly code). +# + +Offsets: util/Offsets.c + @mkdir -p $(@D) + $(CC) -mx32 -std=c99 $(INCLUDES) -fno-builtin \ + -o Offsets util/Offsets.c |