1 export TOPDIR ?= $(CURDIR)/..
2 include $(TOPDIR)/global_config
5 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B i386 -I binary -O elf32-i386\""
9 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B i386 -I binary -O elf32-i386\""
12 ifeq ($(OBJDIR), x86_64)
13 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B i386 -I binary -O elf64-x86-64\""
15 ifeq ($(OBJDIR), amd64)
16 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B i386 -I binary -O elf64-x86-64\""
19 ifeq ($(OBJDIR), armv8l)
20 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B arm -I binary -O elf32-littlearm\""
23 ifeq ($(OBJDIR), armv7l)
24 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B arm -I binary -O elf32-littlearm\""
27 ifeq ($(OBJDIR), aarch64)
28 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B aarch64 -I binary -O elf64-littleaarch64\""
31 ifeq ($(OBJDIR), ppc64)
32 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B powerpc -I binary -O elf64-powerpc\""
36 BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B powerpc -I binary -O elf32-powerpc\""
42 $(shell mkdir -p $(OBJDIR) )
46 $(OBJDIR)/bcbitmap.o \
47 $(OBJDIR)/bcbutton.o \
48 $(OBJDIR)/bccapture.o \
49 $(OBJDIR)/bccolors.o \
50 $(OBJDIR)/bccmodels.o \
51 $(OBJDIR)/bccounter.o \
52 $(OBJDIR)/bcclipboard.o \
53 $(OBJDIR)/bcdelete.o \
54 $(OBJDIR)/bcdialog.o \
55 $(OBJDIR)/bcdisplay.o \
56 $(OBJDIR)/bcdisplayinfo.o \
57 $(OBJDIR)/bcdragbox.o \
58 $(OBJDIR)/bcdragwindow.o \
59 $(OBJDIR)/bcfilebox.o \
60 $(OBJDIR)/bcfontentry.o \
61 $(OBJDIR)/bclistbox.o \
62 $(OBJDIR)/bclistboxitem.o \
65 $(OBJDIR)/bcmenubar.o \
66 $(OBJDIR)/bcmenuitem.o \
67 $(OBJDIR)/bcmenupopup.o \
69 $(OBJDIR)/bcnewfolder.o \
71 $(OBJDIR)/bcpbuffer.o \
72 $(OBJDIR)/bcpixmap.o \
74 $(OBJDIR)/bcpopupmenu.o \
76 $(OBJDIR)/bcprogress.o \
77 $(OBJDIR)/bcprogressbox.o \
78 $(OBJDIR)/bcrecentlist.o \
79 $(OBJDIR)/bcrename.o \
80 $(OBJDIR)/bcrepeater.o \
81 $(OBJDIR)/bcresources.o \
82 $(OBJDIR)/bcscrollbar.o \
83 $(OBJDIR)/bcsignals.o \
84 $(OBJDIR)/bcslider.o \
85 $(OBJDIR)/bcsubwindow.o \
86 $(OBJDIR)/bcsynchronous.o \
87 $(OBJDIR)/bctextbox.o \
88 $(OBJDIR)/bctexture.o \
91 $(OBJDIR)/bctoggle.o \
93 $(OBJDIR)/bctumble.o \
94 $(OBJDIR)/bcwindow.o \
95 $(OBJDIR)/bcwindow3d.o \
96 $(OBJDIR)/bcwindowbase.o \
97 $(OBJDIR)/bcwindowdraw.o \
98 $(OBJDIR)/bcwindowevents.o \
99 $(OBJDIR)/condition.o \
100 $(OBJDIR)/errorbox.o \
101 $(OBJDIR)/filesystem.o \
103 $(OBJDIR)/rotateframe.o \
105 $(OBJDIR)/testobject.o \
106 $(OBJDIR)/bctimer.o \
109 $(OBJDIR)/vframe3d.o \
111 $(OBJDIR)/workarounds.o
113 OUTPUT = $(OBJDIR)/libguicast.a
115 UTILS = $(OBJDIR)/bootstrap $(OBJDIR)/pngtoh $(OBJDIR)/pngtoraw
116 BCXFER = xfer/$(OBJDIR)/xfer.stamp
118 CFLAGS += $(static_incs) `pkg-config --cflags libpng` `pkg-config --cflags libjpeg`
120 $(shell echo $(CFLAGS) > $(OBJDIR)/c_flags)
121 $(shell echo $(OBJS) > $(OBJDIR)/objs)
123 all: $(OUTPUT) $(UTILS)
124 PLATFORM = $(uname -s)
125 ifneq ($(PLATFORM), FreeBSD)
126 python = $(shell find /usr/local/bin -name python3\* | head -n 1)
128 ifneq ($(PLATFORM), Linux)
129 python = $(shell which python)
133 python += $(shell which python3.9)
137 $(BCXFER): bccmdl.py bcxfer.C bcxfer.h
138 $(python) < ./bccmdl.py
141 $(OUTPUT): $(OBJS) $(BCXFER)
142 ar rc $(OUTPUT) `cat $(OBJDIR)/objs` `ls -1 $(dir $(BCXFER))/xfer*.o`
143 ar rs $(OUTPUT) `ls -1 $(dir $(BCXFER))/xfer*.o`
146 $(CC) -O2 $(BOOTSTRAPFLAGS) bootstrap.c -o $(OBJDIR)/bootstrap
148 $(OBJDIR)/pngtoh: pngtoh.c
149 $(CC) -O2 pngtoh.c -o $(OBJDIR)/pngtoh
151 PNGTORAWFLAGS = $(shell pkg-config --libs libpng pkg-config --cflags libpng)
154 $(OBJDIR)/pngtoraw: pngtoraw.c
155 $(CC) -O2 pngtoraw.c -o $(OBJDIR)/pngtoraw $(PNGTORAWFLAGS) -lz
159 $(MAKE) -C xfer clean
163 $(LIBOBJS) $(OBJS) $(CUTOBJ):
166 $(CXX) `cat $(OBJDIR)/c_flags` -DMSGQUAL=$* -c $< -o $@
168 $(OBJDIR)/bootstrap: bootstrap.c
169 $(OBJDIR)/pngtoh: pngtoh.c
172 @echo $($(subst val-,,$@))