Skip to content

Instantly share code, notes, and snippets.

@allanjos
Last active November 5, 2018 01:10
Show Gist options
  • Save allanjos/59ab2dcfa94116b556b723f698b6368d to your computer and use it in GitHub Desktop.
Save allanjos/59ab2dcfa94116b556b723f698b6368d to your computer and use it in GitHub Desktop.
GNUStep sample build

Install dependencies:

sudo apt-get install gnustep
sudo apt-get install gnustep-make
sudo apt-get install gnustep-devel

Configure environment:

. /usr/share/GNUstep/Makefiles/GNUstep.sh

main.m:

#include <Foundation/Foundation.h>

@interface Greeter: NSObject
{
}

- (void)greet;

@end

#include <stdio.h>

@implementation Greeter

- (void) greet
{
    NSLog(@"Greeter!");
}

@end

int main(void)
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSLog (@"GNUStep test");

    Greeter *greeter;

    greeter = [Greeter alloc];
    greeter = [greeter init];

    [greeter greet];

    [greeter release];

    [pool drain];

    return EXIT_SUCCESS;
}

Compile:

gcc `gnustep-config --objc-flags` -Wl,--no-as-needed -lgnustep-base -lobjc main.m -o main

Execute:

./main

The Makefile file:

CPPFLAGS=`gnustep-config --objc-flags` -Wl,--no-as-needed
LDFLAGS=-lgnustep-base -lobjc

main: main.m

clean:
    rm -f main *.d

Build with Makefile:

make
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment