summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rw-r--r--rootdir.c9
2 files changed, 18 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index b8c055f..a397522 100644
--- a/Makefile
+++ b/Makefile
@@ -6,13 +6,21 @@ LIBS = -lnetfs -lps
CC = gcc
CFLAGS = -Wall -g
CPPFLAGS =
+LDFLAGS =
+
+ifdef PROFILE
+CFLAGS= -g -pg
+CPPFLAGS= -DPROFILE
+LDFLAGS= -static
+LIBS= -lnetfs -lfshelp -liohelp -lps -lports -lthreads -lihash -lshouldbeinlibc
+endif
CPPFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
all: $(TARGET)
$(TARGET): $(OBJS)
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
clean:
$(RM) $(TARGET) $(OBJS)
diff --git a/rootdir.c b/rootdir.c
index c6ddd87..204bc02 100644
--- a/rootdir.c
+++ b/rootdir.c
@@ -422,6 +422,15 @@ static const struct procfs_dir_entry rootdir_entries[] = {
.cleanup_contents = procfs_cleanup_contents_with_free,
},
},
+#ifdef PROFILE
+ /* In order to get a usable gmon.out file, we must apparently use exit(). */
+ {
+ .name = "exit",
+ .ops = {
+ .make_node = exit,
+ },
+ },
+#endif
{}
};