diff options
author | Freya Murphy <freya@freyacat.org> | 2025-03-25 17:36:52 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-03-25 17:38:22 -0400 |
commit | 6af21e6a4f2251e71353562d5df7f376fdffc270 (patch) | |
tree | de20c7afc9878422c81e34f30c6b010075e9e69a /util/alternatives/Make.mk | |
download | comus-6af21e6a4f2251e71353562d5df7f376fdffc270.tar.gz comus-6af21e6a4f2251e71353562d5df7f376fdffc270.tar.bz2 comus-6af21e6a4f2251e71353562d5df7f376fdffc270.zip |
initial checkout from wrc
Diffstat (limited to 'util/alternatives/Make.mk')
-rw-r--r-- | util/alternatives/Make.mk | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/util/alternatives/Make.mk b/util/alternatives/Make.mk new file mode 100644 index 0000000..d5703e8 --- /dev/null +++ b/util/alternatives/Make.mk @@ -0,0 +1,56 @@ +# +# 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. +# + +SUBDIRS += util + +################### +# RULES SECTION # +################### + +# how to make everything +util: $(BUILDDIR)/util/BuildImage $(BUILDDIR)/util/Offsets \ + $(BUILDDIR)/util/mkblob $(BUILDDIR)/util/listblob + +# +# 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. +# + +$(BUILDDIR)/util/BuildImage: util/BuildImage.c + @mkdir -p $(@D) + $(CC) -std=c99 -o $(BUILDDIR)/util/BuildImage util/BuildImage.c + +$(BUILDDIR)/util/mkblob: util/mkblob.c + @mkdir -p $(@D) + $(CC) -std=c99 -o $(BUILDDIR)/util/mkblob util/mkblob.c + +$(BUILDDIR)/util/listblob: util/listblob.c + @mkdir -p $(@D) + $(CC) -std=c99 -o $(BUILDDIR)/util/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). +# + +$(BUILDDIR)/util/Offsets: util/Offsets.c + @mkdir -p $(@D) + $(CC) -mx32 -std=c99 $(INCLUDES) -fno-builtin \ + -o $(BUILDDIR)/util/Offsets util/Offsets.c |