Add MUI example. Modify install-sdk to create static library.

This commit is contained in:
Krystian Bacławski 2014-01-05 13:04:09 +01:00
parent 8f3dc24fbe
commit 0dcdd79a41
5 changed files with 111 additions and 4 deletions

1
examples/.gitignore vendored
View File

@ -1 +1,2 @@
hello
hello-mui

View File

@ -1,13 +1,18 @@
CC = m68k-amigaos-gcc -noixemul -s
CFLAGS = -Os -Wall -fomit-frame-pointer
all: hello
all: hello hello-mui
hello: LDLIBS = -lnix13
hello: CC += -fbaserel
hello: CFLAGS += -m68000 -msmall-code
hello: hello.c
hello-mui: CC += -fbaserel
hello-mui: CFLAGS += -m68020 -msmall-code
hello-mui: LDLIBS = -lmui
hello-mui: hello-mui.c
clean:
rm -f hello
rm -f hello hello-mui
rm -f *.o *~

64
examples/hello-mui.c Normal file
View File

@ -0,0 +1,64 @@
/* Taken from: http://aros.sourceforge.net/documentation/developers/zune-application-development.php */
#include <exec/types.h>
#include <libraries/mui.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <clib/muimaster_protos.h>
#include <clib/alib_protos.h>
/* Otherwise auto open will try version 37, and muimaster.library has version
* 19.x for MUI 3.8 */
int __oslibversion = 0;
/* We don't use command line arguments. */
int __nocommandline = 1;
int main(void) {
Object *wnd, *app, *but;
// GUI creation
app = ApplicationObject,
SubWindow, wnd = WindowObject,
MUIA_Window_Title, "Hello world!",
WindowContents, VGroup,
Child, TextObject,
MUIA_Text_Contents, "\33cHello world!\nHow are you?",
End,
Child, but = SimpleButton("_Ok"),
End,
End,
End;
if (app != NULL) {
ULONG sigs = 0;
// Click Close gadget or hit Escape to quit
DoMethod(wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
(APTR)app, 2,
MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
// Click the button to quit
DoMethod(but, MUIM_Notify, MUIA_Pressed, FALSE,
(APTR)app, 2,
MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
// Open the window
set(wnd, MUIA_Window_Open, TRUE);
while((LONG)DoMethod(app, MUIM_Application_NewInput, (APTR)&sigs)
!= MUIV_Application_ReturnID_Quit) {
if (sigs) {
sigs = Wait(sigs | SIGBREAKF_CTRL_C);
if (sigs & SIGBREAKF_CTRL_C)
break;
}
}
// Destroy our application and all its objects
MUI_DisposeObject(app);
}
return 0;
}

View File

@ -33,6 +33,17 @@ function add_stubs {
rm -f "${obj}"
}
function add_lib {
local src="$1"
local lib="$2"
local obj="${src%.a}.o"
echo "${src} -> ${PREFIX}/lib/${lib}"
m68k-amigaos-gcc "${CFLAGS}" -noixemul -c -o "${obj}" "${src}" && \
m68k-amigaos-ar rcs "${PREFIX}/lib/${lib}" "${obj}"
rm -f "${obj}"
}
function install_sdk {
local name="$1"
local sdk="$2"
@ -88,8 +99,8 @@ function install_sdk {
;;
"stubs")
path=${line[2]}
name=$(basename ${path})
file="${name%_lib.sfd}.c"
filepart=$(basename ${path})
file="${filepart%_lib.sfd}.c"
echo "${path} -> ${file}"
sfdc --quiet --target=m68k-amigaos --mode=autoopen \
@ -110,6 +121,31 @@ function install_sdk {
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel32 -DSMALL_DATA -m68020"
add_stubs "${file}" "libb32/libm020/libnix"
;;
"lib")
path=${line[2]}
filepart=$(basename ${path})
file="${filepart%_lib.sfd}.c"
lib="lib${name}.a"
echo "${path} -> ${file}"
sfdc --quiet --target=m68k-amigaos --mode=stubs \
--output="${file}" ${path}
CFLAGS="-Wall -O3 -fomit-frame-pointer"
add_lib "${file}" "${lib}"
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA"
add_lib "${file}" "libb/${lib}"
CFLAGS="-Wall -O3 -fomit-frame-pointer -m68020"
add_lib "${file}" "libm020/${lib}"
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA -m68020"
add_lib "${file}" "libb/libm020/${lib}"
CFLAGS="-Wall -O3 -fomit-frame-pointer -m68020 -m68881"
add_lib "${file}" "libm020/libm881/${lib}"
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA -m68020 -m68881"
add_lib "${file}" "libb/libm020/libm881/${lib}"
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel32 -DSMALL_DATA -m68020"
add_lib "${file}" "libb32/libm020/${lib}"
;;
*)
echo "Unknown preprocessor: '${line}'"
exit 1

View File

@ -77,3 +77,4 @@ MUI/Developer/FD/muimaster_lib.fd
fd2sfd : MUI/Developer/FD/muimaster_lib.fd MUI/Developer/C/Include/clib/muimaster_protos.h
sfdc : muimaster_lib.sfd
stubs : muimaster_lib.sfd
lib : muimaster_lib.sfd