summaryrefslogtreecommitdiffstats
path: root/final_project/work/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'final_project/work/Makefile')
-rw-r--r--final_project/work/Makefile43
1 files changed, 43 insertions, 0 deletions
diff --git a/final_project/work/Makefile b/final_project/work/Makefile
new file mode 100644
index 0000000..f8e8f97
--- /dev/null
+++ b/final_project/work/Makefile
@@ -0,0 +1,43 @@
+all:
+ rm -f prhello-shim.{c,o} prhello-const.{c,o} *.bin *.so
+ make install-example
+ mit-scheme --batch-mode --load prhello.scm
+
+run:
+ rm -f prhello-shim.{c,o} prhello-const.{c,o} *.bin *.so
+ make install-example
+ mit-scheme --load prhello.scm
+
+
+install-example: build-example
+ sudo cp -a prhello-types.bin /usr/local/lib/mit-scheme/lib/.
+ sudo cp -a prhello-const.bin /usr/local/lib/mit-scheme/lib/.
+ sudo cp -a prhello-shim.so /usr/local/lib/mit-scheme/lib/.
+
+build-example: prhello-shim.so prhello-types.bin prhello-const.bin
+
+prhello-shim.so: prhello-shim.o
+ $(CC) -shared -fPIC -o $@ $^ `pkg-config --libs gtk+-2.0`
+
+prhello-shim.o: prhello-shim.c
+ $(CC) -I../lib -Wall -fPIC `pkg-config --cflags gtk+-2.0` -o $@ -c $<
+
+prhello-shim.c prhello-const.c prhello-types.bin: prhello.cdecl
+ (echo "(load-option 'FFI)"; \
+ echo '(C-generate "prhello" "#include <gtk/gtk.h>")') \
+ | mit-scheme --batch-mode
+
+prhello-const.bin: prhello-const.scm
+ echo '(sf "prhello-const")' | mit-scheme --compiler --batch-mode
+
+prhello-const.scm: prhello-const
+ ./prhello-const
+
+prhello-const: prhello-const.o
+ @rm -f $@
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ `pkg-config --libs gtk+-2.0`
+
+prhello-const.o: prhello-const.c
+ $(CC) `pkg-config --cflags gtk+-2.0` $(CFLAGS) -o $@ -c $<
+
+