]> rtime.felk.cvut.cz Git - omk.git/blob - tests/vxworks.files
NuttX: the adapt to new implementation of ROMFS mounting at /etc
[omk.git] / tests / vxworks.files
1 mkdir 'fibo-rtplib'
2 cat > 'fibo-rtplib/Makefile.omk' <<EOF
3 lib_LIBRARIES = fibo
4 fibo_SOURCES = fibofnc.c fiboseries.c
5 include_HEADERS = fibolib.h
6
7
8 EOF
9 cat > 'fibo-rtplib/fibofnc.c' <<EOF
10 #include "fibolib.h"
11
12 int fibocalls;
13
14 int
15 fibofnc (int n)
16 {
17     fibocalls++;
18
19     if (n <= 0)
20         return 0;
21     if (n == 1)
22         return 1;
23     return fibofnc (n - 1) + fibofnc (n - 2);
24 }
25 EOF
26 cat > 'fibo-rtplib/fiboseries.c' <<EOF
27 #include <stdlib.h>
28 #include "fibolib.h"
29
30 int
31 fiboseries (int **series, int n)
32 {
33     int *p;
34     int i;
35
36     if (n < 0)
37         return 0;
38
39     p = malloc (sizeof (int) * (n + 1));
40     *series = p;
41
42     if (!p)
43         return 0;
44
45     for (i = 0; i <= n; i++) {
46         p[i] = fibofnc (i);
47     }
48
49     return 1;
50 }
51 EOF
52 cat > 'fibo-rtplib/fibolib.h' <<EOF
53 #ifndef FIBOLIB_H
54 #define FIBOLIB_H
55
56 extern int fibocalls;
57
58 int fibofnc (int n);
59
60 int fiboseries (int **series, int n);
61
62 #endif /*FIBOLIB_H */
63 EOF
64 cat > 'config.target' <<EOF
65 CPU=SIMPENTIUM
66 TOOL=diab
67 WRENV = ~/opt/WindRiver/wrenv.sh
68 WRPACKAGE = vxworks-6.1
69
70 EOF
71 echo 'SUBDIRS = fibo-rtp fibo-rtplib #orte' > 'Makefile.omk'
72 mkdir 'fibo-rtp'
73 cat > 'fibo-rtp/fiboprint.c' <<EOF
74 #include <stdio.h>
75
76 void
77 fiboprint (int *series, int n)
78 {
79     while (n-- >= 0)
80         printf ("%d%c", *(series++), n >= 0 ? ' ' : '\n');
81 }
82 EOF
83 cat > 'fibo-rtp/Makefile.omk' <<EOF
84 bin_PROGRAMS = fibo2
85 fibo2_SOURCES = fibo2.c fiboprint.c
86 fibo2_LIBS = fibo
87
88 EOF
89 cat > 'fibo-rtp/fibo2.c' <<EOF
90 #include <stdio.h>
91 #include <stdlib.h>
92 #include <fibolib.h>
93
94 int
95 main (int argc, char *argv[])
96 {
97     int n;
98     int res;
99     char *p;
100     int *series;
101
102     if (argc >= 2) {
103         n = strtol (argv[1], &p, 0);
104         if ((p == argv[1]) || *p) {
105             fprintf (stderr, "The \"%s\" string is not a number\n", argv[1]);
106             return 1;
107         }
108     } else {
109         printf ("Input number: ");
110         scanf ("%d", &n);
111     }
112
113     res = fiboseries (&series, n);
114     if (res <= 0) {
115         fprintf (stderr, "fiboseries() failed for %d with code %d\n", n, res);
116         return 1;
117     }
118
119     /* Incorrect use of the function without prototype!!! */
120     fiboprint (series, n);
121
122     printf ("fibocalls=%d\n", fibocalls);
123
124     return 0;
125 }
126 EOF